TOP設計・移行・活用> 階層構造の設計
エンジニアの視点から活用するXMLDB
エンジニアの視点から活用するXMLデータベース

第3回:統合システムへのXMLDBの適用
著者:メタジトリー  丸山 則夫   2006/3/28
1   2  3  次のページ
階層構造の設計

   前回はリレーショナルデータベース(RDB)とXMLデータベース(XMLDB)の設計の違いについて説明し、XMLDBはRDBの苦手な部分に柔軟に対応できるということをお伝えしました。今回はRDBとXMLDBの階層構造の違いについて説明します。

   RDBとXMLDBの階層構造を比較する前に、RDBでも階層構造を表現できることを説明します。RDBで階層を表現方法する方法の1つとして、エンティティとその間の親子関係で表現する方法があります。

階層構造の設計
図1:階層構造の設計

   RDBで階層構造を表現する場合、図1のように「第1階層テーブル → 第2階層テーブル → 第3階層テーブル」と作っていけば、個々の階層のテーブルができます。これを組織の階層としてあらわすと、「最上位の組織のテーブル → 中間の組織のテーブル → 最下位の組織のテーブル」となります。そして、個々のテーブルの中に自分のキーと親のキーを持たせて、主従(親子)を定義します。

   階層構造をRDBで作るのに対して、XMLDBで作る場合は、組織の階層を素直に組み立てていくことで表現できます。

組織の階層の組み立て
図2:組織の階層の組み立て

   ここでRDBで行う組織の階層を組み立てる方法とXMLDBで扱う方法を比較すると、表1のことがいえます。

同一階層での処理
データ構造がテーブル1つに固まっていれば、RDBの方がXMLDBよりも効率よい処理が可能です。
階層の深さ
RDB・XMLDBともに素直な階層表現の方が階層の深さに制限がありません。
階層のバラつき
バラつきに法則があり、不変か・変化するかということがデータベースを構築する上でのポイントになります。RDBで扱う場合、バラつきが法則化されていて不変ならテーブルを作ることは有益です。しかし、法則がなければテーブルの数はどんどん増えてきますので、XMLDBでデータベース構築をした方がよいでしょう。

表1:RDBで行う組織の階層を組み立てる方法とXMLDBで扱う方法との比較

   また常に変更が加わる場合、どうしてもテーブルの設計変更はつきまといますので、運用の困難性が増します(変更の法則がない場合は、XMLで対応でもスキーマ定義を頻繁に変更しなくてはなりません)。

   表1の方法で階層構造を組み立てる時には、拡張性・柔軟性の点でXMLDBの方がRDBに比べて有利です。ですが、階層構造が固定で構造の種類が少なく、横通しの処理が多ければ、データベースの運用も含めてRDBの利点がいきます。

1   2  3  次のページ


株式会社メタジトリー 丸山 則夫
著者プロフィール
株式会社メタジトリー  丸山 則夫
株式会社メタジトリー 代表取締役。長年、データ分析およびデータベースの設計、社内統合の情報基盤の整備に従事。 1998年XMLの可能性に着目。電子カタログ、電子ドキュメントなど広範囲な実績をベースに、XMLソリューションのコンセプトをビジネス展開。


INDEX
第3回:統合システムへのXMLDBの適用
階層構造の設計
  階層に柔軟性を持たせる設計
  情報の意味