階層構造

階層の深さが一定でないnレベルの階層は、地理的もしくは組織的次元をデータで表す場合などによく使用されます。これらの種類の階層は、通常隣接するノード テーブルに保存されます。つまり、テーブルでは、それぞれのレコードはノードと一致し、親ノードへの参照を含む項目を持っています。

このようなテーブルでは、ノードは 1 つのレコードにのみ保存されますが、子供をいくつでも持つことができます。当然のことながら、テーブルには、ノードの属性が記述された追加項目が含まれている可能性があります。

隣接するノード テーブルは、メンテナンスには役立ちますが、毎日の業務には適していません。そこでクエリと分析では、他の表現を使用します。展開されたノード テーブルは一般的な表現の 1 つで、階層の各レベルは別個の項目に保存されます。展開されたノード テーブルのレベルは、ツリー構造などで容易に使用できます。hierarchyのキーワードをロード スクリプトで使用すると、隣接するノード テーブルを展開ノード テーブルに変換できます。

例:  

Hierarchy (NodeID, ParentNodeID, Title, 'Manager') LOAD NodeID, ParentNodeID, Title FROM 'hierarchy.txt' (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

展開ノード テーブルの問題は、検索や選択を行う際に対象となるレベルを知っておく必要があり、レベル項目を簡単に使用できないという点にあります。この問題を解決する 1 つの表現が先祖テーブルで、ブリッジ テーブルとも呼ばれます。

先祖テーブルには、データで見つかった子供と先祖の関係をすべて記録するレコードが 1 つあり、この中には子供と先祖のキーと名前が含まれています。つまり、それぞれのレコードを見れば、特定のノードがどのノードに属しているのかがわかります。hierarchybelongstoキーワードをロード スクリプトで使用すると、隣接するノード テーブルを先祖テーブルに変換できます。

参照項目: