TOPサーバ構築・運用> pureXML(DB2 9のXML機能)
DB2 9
DB2 9の全貌

第3回:Web 2.0時代はXMLデータベースで!

著者:日本アイ・ビー・エム  中林 紀彦   2007/9/7
1   2  3  次のページ
pureXML(DB2 9のXML機能)

   今回はDB2 9の一番の新機能「pureXML」を紹介します。

   DB2 9の特徴は何といってもXMLデータを扱うための専用エンジンを実装しているところです。V8までのDB2を含む従来のリレーショナルデータベース(RDBMS)でもXMLを扱うことはできましたが、既存のデータベースの機能を利用したいわば「暫定的」な対応方法でした。

   XMLデータの格納方法は大きく2種類あり、XMLデータをテーブルの各列にマッピングするシュレッディング方式と、VARCHARやCLOBといった列にそのままの形で保管する方式の2種類の方法が採用されていました。どちらの方式もそれぞれ、柔軟性とパフォーマンスのトレードオフで、両方の長所を持った本当の意味でのXMLデータベースとは呼べなかったのが実情です。

   最新バージョンであるDB2 9では、これまでのRDBMSの枠を超えてネイティブXMLストレージと呼ばれるXML専用のエンジンを搭載しました。この機能を総称して「pureXML」と名づけています。もちろん従来からのリレーショナルエンジンもそのまま引き継がれていますので、DB2 9はXMLとリレーショナルのハイブリッドデータベースとなります。

   pureXMLは、XMLの柔軟性を損なうことなくデータベースに格納するために、XMLスキーマの定義を必要としない「スキーマレス」の管理が可能になっています。もちろんXMLスキーマを指定することも可能ですし、1つのXML列で複数のXMLスキーマを指定することも可能です。

   またパフォーマンスに関しても、新たに実装したネイティブXMLストレージにより、XMLの階層型フォーマットの形式を損なうことなく格納できます。さらに、XMLエレメントやアトリビュートに対しても、それぞれにインデックスを作成できるようになっていますので、パフォーマンスに関してもRDBMSに引けをとらない実装になっています。

   このようにDB2 9は、ハイブリッドデータベースであり、階層型データベース、RDBMSに次ぐ、まさに「第3世代のデータベース」なのです。

なぜXMLデータベースか?

   これまでのRDBMSでも様々なデータを格納することが可能ですし、ちょっとした作業は必要でしたがXMLデータも扱うことができました。ではなぜXMLデータベースが必要なのでしょうか?

   答えは簡単です。今まではRDBMSの選択肢しかなかったため、無理やりRDBMSを使っていたのです。例えば、商品データベースなどが良い例です。

リレーショナル表による商品データベースの実装例
図1:リレーショナル表による商品データベースの実装例
(画像をクリックすると別ウィンドウに拡大図を表示します)

   図1のように商品データというのは多種にわたる属性を持つものが多いため、従来のリレーショナルデータモデルで表現すると(第1正規形の例)、すべての属性をカバーするためには不要な項目を持つ必要があり、無駄が多い表になってしまいました。

  • 不要な項目はNULLなどの無効値で埋める必要性がある
  • プログラムは無効値を読み飛ばすか、必要なもののみを個別に選択する必要がある
  • 多様な商品のニーズに迅速に対応するためには非常に冗長になってしまう

表1:このケースでのデメリット

   また、属性を列として個別に管理するため、(当然といえば当然なのですが)属性を追加したり変更したりするためには、データベースの定義(スキーマ)を変更する必要がありました。データベースの定義を変更するということは非常にインパクトが大きく、サービスイン後にこれを行おうとすると、最低限以下の4つの項目が必要になります。特にサービスを停止をする必要があるのでビジネスにもインパクトを与えてしまいました。

  1. データベース定義の変更
  2. SQLの変更
  3. アプリケーションの変更
  4. サービスの停止

表2:データベースの定義を変更する場合に必要な項目

   それではXMLデータベースを使った実装例について考えてみましょう。

   図2をみてわかるように非常にシンプルな実装になります。

XMLデータベースによる商品データベースの実装例
図2:XMLデータベースによる商品データベースの実装例

   XMLデータで商品の属性を表現しているため、必要な属性だけをエレメントとして定義して記述すればよく、RDBMSのように必要のない項目を持たなくてもよいのです。何よりも、新しい属性を追加する際にもデータベースの定義を変更する必要がないのでサービスを停止することなく新しい機能を追加したり、サービスの内容を変更したりできます。

  • 各商品にとって、必要となる項目のみ扱う
  • 多様な商品取り扱いのニーズに迅速に対応可能
  • データベースの定義(スキーマ)を変更することなくサービス内容の変更が可能

表3:XMLデータベースを使うメリット

1   2  3  次のページ


日本アイ・ビー・エム株式会社 中林 紀彦
著者プロフィール
日本アイ・ビー・エム株式会社  中林 紀彦
データサービス・テクニカル・セールス/XMLイノベーション・センター
XMLイノベーション・センターを通して、XMLデータベースを扱うビジネス・パートナー様の提案や構築をバックエンドでサポートする。また、自らもWeb 2.0サービスを行うお客様に対して、XMLデータベースの素晴らしさを説く日々を送る。

XMLイノベーション・センター
http://www.ibm.com/jp.software/data/xic/


INDEX
第3回:Web 2.0時代はXMLデータベースで!
pureXML(DB2 9のXML機能)
  Web 2.0時代の新しいデータベース〜pureXMLの実力
  Ruby on Railsからも、PHPからも簡単にアクセス