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

第2回:リレーショナルデータベースとXMLデータベースの設計の違い
著者:メタジトリー  丸山 則夫   2006/3/14
1   2  3  次のページ
XMLデータベースに着目

   筆者がXMLデータベースをはじめて使ったのは2000年頃です。その頃のXMLデータベースの用途は電子カタログでしたが、当時はリレーショナルデータベース(以下、RDB)に格納する方がメジャーでした。

   著者がXMLに着目したのは、データベース構造に自由度を採用しているからでした。様々なものを電子カタログ化すると、属性が品物によりバラバラになり、このような状態でRDBを使うと表1のどちらかになります。

  • テーブルの数が膨大になる
  • 構造の簡素化とともに属性としての対応機能に制限を持つ

表1:電子カタログにRDBを用いる際の問題点

   表1の結果として表2の問題が起こり、最適解が見つからずに何を選択しても問題が残る結果となりました。

  • 新規品物の追加により、新たな属性の追加によるテーブルのメンテナンスが大変になる
  • メンテナンスの簡素化のため、検索の精度が落ちる
  • 簡素化したテーブルを使って精度の高い検索を実現するため、検索ロジックが複雑になる

表2:電子カタログにRDBを用いたことにより起こった問題点

   これらの問題を一気に解決するために登場したのがXMLデータベースです。XMLデータベースを選択する理由として、様々な品物の個々に必要な属性をタグ付きで持たせればよいことがあげられます。

   検索には、必要な属性をタグで定義すれば検索対象として宣言したことになり、検索精度が高められました。また、属性を抽出するロジックもXMLの構造との連携で複雑にならないということも決定の理由でした。


RDBの特性:正規化

   DBMSの主流であるRDBは表の集合で構成され、「アプリケーションとデータの分離の原則」で設計しますが、アプリケーションの独立性を持たせるために「データの正規化」技術を使います。

正規化
図1:正規化

   以降では正規化について順に解説します。


第1正規化

   表の中での繰り返している項目を独立した他の表とし、表内の属性の繰り返し数の可変要素を排除します。そして独立させた繰り返しの表と元の表に関連を張ります。これが第1正規化です。例えば売上明細一覧表の中に、商品コードと商品名の繰り返しが1行の中にあれば、売上商品として切り出します。


第2正規化

   その次に、表の中の属性で従属関係のものを独立した表にし、同じ属性値を排除して関連を張ります。これにより値の冗長性を排除できます。例えば、売上明細一覧表の中に取扱担当者コードと氏名があったら、取り扱者として切り出すことがあげられます。


第3正規化

   さらに、キー属性と属性の間で従属関係のあるものを独立した表にし、関連をつけて表の中の従属関係を表同士の従属関係にし、値の冗長性を排除します。これを第3正規化といいます。

   例えば、第1正規化の例で切り出された売上商品表があるとすると、その中の商品は売上単位(売上番号)にくくられています(商品コードで区別するかたまり)。商品の商品名は商品コードに従属していますので、商品として独立させます。さらに第4、5正規化…と正規化は続きますが、通常は第3正規化まで行います。

   RDBで第3正規化までを行う理由は定義と値の冗長性の排除です。その結果、様々な業務処理で表を操作することより、業務が必要とするデータが1箇所から効率よく取得でき、また効率よく更新できます。


1   2  3  次のページ


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


INDEX
第2回:リレーショナルデータベースとXMLデータベースの設計の違い
XMLデータベースに着目
  XMLデータベースと正規化
  RDBの苦手な部分に柔軟に対応できるXMLデータベース