ネストされたセットモデルとは何ですか?

ネストされたセットモデルは、変更された事前注文ツリートラバーサルアルゴリズムとしても知られており、リレーショナルデータベース内に階層データを保存する方法です。このモデルには、非常に速いアクセスを提供するという利点があり、書き込みよりも頻繁に読まれる階層に最適に実装されています。情報モデル内の各ノードには、属性として保存されている2つの番号が割り当てられます。ネストされたセットモデルのクエリは、両方の値を使用して必要なデータを引き出すことができるため、かなり簡単です。ただし、挿入、削除、動き、更新を作成することは、ノードの変更を含む可能性があるため、はるかに面倒です。

通常、木の形でネストされたセットまたは階層情報を表すために使用されるため、ネストされたセットモデルはJoe Celkoによって導入されました。この例では、ツリーは、多くのリンクノードを含むデータ構造です。たとえば、親ノードはいくつかの子ノードに接続する場合があり、この構造はいくつかのレフを通してツリーを繰り返しますエル。

ツリーは、共通の特性に応じてデータを保存するデータセットであるリレーショナルデータベース内で特定の順序で情報を保存する優れた方法です。たとえば、店の食品セクション内の製品情報は、食品から始まり、果物、野菜、肉に分岐する場合があります。フルーツは、さらに、塊茎、メロン、リンゴ、野菜に細分化され、塊茎、グリーン、その他、肉、豚肉、マトン、子牛肉に肉になります。

リレーショナルデータベースは、このすべての情報を理解しやすい形式で保存し、ネストされたセットモデルにより、ツリー構造を効率的に管理できます。上記の例を使用すると、ルートノードは2つの値で表される食品です。食品の左の値が1として与えられると、ツリー内の他のアイテムには左側の数字が順番に割り当てられます。果物は左側に2つの値を、ベリーは3になるでしょう。 VAその後、LUEは右側に割り当てられ、最後の値が右側の食品に割り当てられるまで、各ブランチを通して木を通してずっと動作します。

ツリー内の各アイテムは、左の場合は lft 、右に rgt たとえば2つの値で終了します。これは、それらを識別し、他のアイテムとの関係を示すために使用できます。たとえば、果物の値が2と15の場合、2を超える値を残したすべてのノードと15未満の右値は、果樹の子孫2〜15です。これらの値はデータベースへの単一のクエリで指定できるため、すべての果物の情報を一度に簡単に引き出すことができます。

このモデルは、アクセスされる情報を頻繁に保存するのに優れていますが、挿入、削除、およびネストされたセットモデルでの情報の再注文は非常に退屈になります。インデックスを書き換えて情報を変更すると、特にツリーが数十万を含む場合、データベースがクラッシュする可能性がありますノードのs。ネストされたセットモデルは、挿入と変更を最小限に抑える光コンテンツ管理システムに最適です。挿入は、パス情報をエンコードしながら、フローティングポイント小数を使用してツリー内の各ノードの位置を保存するため、ネストされたインターバルモデルではるかに高速に作成できます。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?