載入階層資料

此外,不對稱的 n 級階層往往用於代表資料中的地理或組織維度。這些類型的階層通常儲存在相鄰的節點表格,亦即該表格中每筆記錄都會對應到一個節點,並且有一個欄位會包含對父節點的參考。

節點表格
NodeID ParentNodeID 標題
1 - 總經理
2 1 地區經理
3 2 分行經理
4 3 部門經理

在這類表格中,節點僅儲存在一筆記錄內,但仍可有任意數目的子節點。當然,表格可包含其他用來描述節點屬性的欄位。

相鄰的節點表格最適合用於維護,但在日常工作中難以使用。於是,查詢和分析會改用其他表示法。展開的節點表格是一個常用的表示法,其中階層內的每一層級都會儲存在個別欄位。展開的節點表格中的層級可輕易地用於像是樹狀結構等。hierarchy 關鍵字可用在資料載入指令碼中,將相鄰的節點表格轉換為展開的節點表格。

Example:  

Hierarchy (NodeID, ParentNodeID, Title, 'Manager') LOAD NodeID, ParentNodeID, Title FROM 'lib://data/hierarchy.txt' (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
展開的節點表格
NodeID ParentNodeID 標題 Title1 Title2 Title4 Title4
1 - 總經理 總經理 - - -
2 1 地區經理 總經理 地區經理 - -
3 2 分行經理 總經理 地區經理 分行經理 -
4 3 部門經理 總經理 地區經理 分行經理 部門經理

展開的節點表格的問題在於不容易使用層級欄位進行搜尋或選取,因為需要先知道要在哪個層級內搜尋或選取。上階表格是解決此問題的另一個表示法。此表示法又稱為橋接表格。

對於資料中找到的每個子/上階關聯,上階表格就會包含一筆記錄。它包含子項以及上階的索引鍵及名稱。即每筆記錄都描述特定節點屬於哪個節點。hierarchybelongsto 關鍵字可用在資料載入指令碼中,將相鄰的節點表格轉換為上階表格。

See also: