リレーショナルデータベースで木構造を扱う

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

 

達人に学ぶDB設計 徹底指南書を読了した。

その中で、木構造の扱いをRDBの弱点としたうえで、下記の論理設計モデルが紹介されていた。

(木構造が弱点になるのはフムフムなるほどといった感じ)

  • 隣接リストモデル
  • 入れ子集合モデル/入れ子区間モデル
  • 経路列挙モデル

入れ子区間モデルの考え方は理解できるんだけど、
実際これをDBに適用したらデータの可視性が著しく低くなるのでは、
と思ってしまうのが文系エンジニアの限界か。。

他のモデルでは数字が出てこないから(笑)
※経路列挙モデルで使う数字はあくまで表現を数字に置き換えただけという理解

経路列挙モデルでいうと、XMLTYPEカラム(あるいはXML実ファイル)がそれに該当すると思うんだけど、検索性能がネックになると思う。
※本書の中では前方一致検索にすることでインデックスを利かせていた

隣接リストモデルだと、データの持ち方は分かりやすいんだけど、
実際の検索や更新処理の実装を想像すると複雑になるのが目に見えているのでウッてなる。

てなわけで、入れ子区間モデルのアルゴリズムで、実際に数字の部分は意識しないでデータ更新・検索できるライブラリがあるといいな、なんて思った。

データベースって、いってもRDBが主流だとおもうんだけど、木構造のデータはみんなどうやって保持してるのかしらん。