
9-4
本章では、木構造をリレーショナルデータベースのテーブルでどのように扱う
か、その方法論を二つ見てきました。各モデルをまとめると、以下のようになりま
す。
最も古典的なモデル。かつては検索/更新ともに複雑な処理を必要としまし
たが、SQLの進歩により、再帰共通表式を使った柔軟な検索が可能になりま
した。更新処理も対象のノードに局所化されており、外部キーによる参照整
合性制約も付与することができるため、もしお使いのDBMSが再帰共通表式
をサポートしていれば、木構造を扱うのモデルとなります
(Oracle、SQL Server、Db2、PostgreSQL、MySQLといった主要なDBMS
の最新版であれば再帰共通表式はサポートされています)。まだ大規模な木で
の再帰計算のパフォーマンス( 速度だけでなくリソース消費の観点でも) が未
知数なのが懸念点です。
すべてのノードについての経路を持つモデル。検索は柔軟で更新もそれほ
ど複雑ではないため、隣接リストモデルが採用できない古いバージョンの
DBMS を利用している場合のセカンドチョイスとなります。常に二つのテーブ
ルの同期を取る必要があることと、更新が難しいとは言わないまでもいささか
面倒である点に留意してください。
リレーショナルデータベースの論理設計といえば正規化と非正規化のトレードオ
フのせめぎあい、という印象が一般的です。しかしトレードオフのせめぎあいは他 ...