本稿で取り上げるのは、この長年のRDBの弱点を克服できる可能性を秘めた新しい方法論です。その方法の名前は、「入れ子集合モデル(Nested Sets Model)」と言います。新しいといっても、提唱されたのはもう10年以上前のことですが、日本ではまだあまり知られていません。このモデルを考案したのは、データベース界のグルの一人、J.セルコです。以下、彼が2004年にこの方法論を集大成した『Joe Celko's Trees and Hierarchies in SQL for Smarties』(参考資料)を参考として、この魅力的で興味深いモデルを解説していきます。
非常に大胆な視点の転換と思うかもしれませんが、実は、セルコが自分で断り書きをしているように、木構造を入れ子集合で表現するというアイデアそのものは、彼が思いついたわけではありません。ドナルド・クヌースの古典的な教科書『The Art of Computer Programming』第1巻[2]において、すでにこの考え方が解説されています。セルコは、このアイデアをデータベースに応用したわけです。このモデルは、その集合指向的な発想によって、RDBと非常に相性がよい表現方法なのです。次に、モデルを利用した検索や更新の方法を見ていきましょう。