階層構造
階層の深さが一定でない n レベルの階層は、地理的もしくは組織的次元をデータで表す場合などによく使用されます。これらの種類の階層は、通常隣接するノード テーブルに保存されます。つまり、テーブルでは、それぞれのレコードはノードと一致し、親ノードへの参照を含む項目を持っています。
このようなテーブルでは、ノードは 1 つのレコードにのみ保存されますが、子供をいくつでも持つことができます。当然のことながら、テーブルには、ノードの属性が記述された追加項目が含まれている可能性があります。
隣接するノード テーブルは、メンテナンスには役立ちますが、毎日の業務には適していません。そこでクエリと分析では、他の表現を使用します。展開されたノード テーブルは一般的な表現の 1 つで、階層の各レベルは別個の項目に保存されます。展開されたノード テーブルのレベルは、ツリー構造などで容易に使用できます。hierarchy のキーワードをロード スクリプトで使用すると、隣接するノード テーブルを展開ノード テーブルに変換できます。
展開ノード テーブルの問題は、検索や選択を行う際に対象となるレベルを知っておく必要があり、レベル項目を簡単に使用できないという点にあります。この問題を解決する 1 つの表現が先祖テーブルで、ブリッジ テーブルとも呼ばれます。
先祖テーブルには、データで見つかった子供と先祖の関係をすべて記録するレコードが 1 つあり、この中には子供と先祖のキーと名前が含まれています。つまり、それぞれのレコードを見れば、特定のノードがどのノードに属しているのかがわかります。hierarchybelongsto キーワードをロード スクリプトで使用すると、隣接するノード テーブルを先祖テーブルに変換できます。