載入階層資料
此外,不對稱的 n 級階層往往用於代表資料中的地理或組織維度。
這些類型的階層通常儲存在相鄰的節點表格,亦即該表格中每筆記錄都會對應到一個節點,並且有一個欄位會包含對父節點的參考。
NodeID | ParentNodeID | 標題 |
---|---|---|
1 | - | 總經理 |
2 | 1 | 地區經理 |
3 | 2 | 分行經理 |
4 | 3 | 部門經理 |
在這類表格中,節點僅儲存在一筆記錄內,但仍可有任意數目的子節點。當然,表格可包含其他用來描述節點屬性的欄位。
相鄰的節點表格最適合用於維護,但在日常工作中難以使用。於是,查詢和分析會改用其他表示法。展開的節點表格是一個常用的表示法,其中階層內的每一層級都會儲存在個別欄位。展開的節點表格中的層級可輕易地用於像是樹狀結構等。hierarchy 關鍵字可用在資料載入指令碼中,將相鄰的節點表格轉換為展開的節點表格。
範例:
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 關鍵字可用在資料載入指令碼中,將相鄰的節點表格轉換為上階表格。