入れ子集合モデル
木構造のモデルの一つ。木を「ぐるりと一周」しながら、各ノードに左値と右値の二つの数を割り当てる。すると部分木は単純な区間になり、子孫の左右の値はすべてノード自身の区間に収まる。読み取りは速く、変更は高くつく。
仕組みは、木を先行順で辿り、下りるときに左値、上るときに右値を振っていくというものだ。利点は、「部分木をすべて取得」が WHERE lft BETWEEN node.lft AND node.rgt という再帰なしの高速な区間クエリになり、子孫の数も単純な算術で求められること。代償は、ノードの挿入や移動のたびに木の大部分の番号を振り直す(値の大きいノードをすべてずらす)必要があり、変更が頻繁だと非常に高くつくことだ。読み取りが中心で、めったに変わらない階層(ショップのカテゴリツリーなど)に向く。隣接リストより複雑だが、部分木の読み取りは速い。クロージャテーブルは中間的な選択肢になる。マテリアライズドパスやクロージャテーブルとも関連が深い。