XMLデータベース製品カタログ 2003
〜XML対応リレーショナルデータベース編〜

山田祥寛
2003/11/15


紹介する製品
Microsoft SQL Server 2000
DB2 Universal Database V8.1
Sybase Adaptive Server Enterprise 12.5
Oracle XML DB
XML対応リレーショナルデータベース概要

 「XMLデータベース製品カタログ 2003」の第1回では、ネイティブXMLデータベース(以降、NXDB)について紹介した。半構造化データであるXMLドキュメントをネイティブに格納することで、構造変動やデータ拡張にも強いNXDBの特性がお分かりいただけたと思う。

 第2回の本稿で扱うのは、「XML対応リレーショナルデータベース」編である。XMLの導入がビジネス局面で本格化している中、旧来のリレーショナルデータベース(以降、RDB)製品もまた、XML技術を無視できないところまできている。厳密な構造化データの世界であるRDBがいかに半構造化データであるXMLと融合していくのか、それはRDB製品がXMLに対応していく過程での最大の焦点でもある。

 本稿では、個別の製品紹介に入るに先立って、もう一度、「なぜXML対応RDBなのか」という疑問に筆者なりの考えを示すと同時に、RDBがどのようにして「XML対応」という課題に取り組もうとしているのか、大枠での理解を皆さんと共有しておきたい。

なぜ、RDBで「XML対応」なのか

 厳密な構造を前提にデータを格納していくべきRDBの世界と、必ずしも厳密な構造には束縛されないXMLの世界。この両者は一見、相いれないようにも見える。事実、第1回の「ネイティブXMLデータベース」編では、RDBでは「いけない」理由とNXDBで「なければならない」理由とを、いくつかのポイントを挙げて解説した。

 では、RDBでXMLを扱うことは邪道なのか――否、決してそのようなことはない。

 ご存じのように、RDB製品は古くから多くのシステムで利用され、いまやアプリケーションの構築には欠かせないコンポーネントの1つでもある。いかに、新しいデータフォーマットとしてXMLが支持されてきたとしても、そして、XMLにネイティブ対応したNXDBの存在があろうとも、バックエンドシステムにこれだけ浸透したRDB製品を置き換えることは難しい。リプレイスに伴う多大な開発工数と費用、そしてさまざまなリスクを勘案しなければならないだろう。

 また、NXDB自体がRDBに比べてまだまだ未成熟な製品であるということも挙げられる。トランザクションの信頼性、パフォーマンス、可用性、セキュリティ技術など、いずれをとってもRDB製品に一日の長があるのは間違いないのだ。

 すなわち、万事がすべてNXDBというのではなく、周辺の環境と条件によっては、XML対応RDBを採用する方がより好ましい局面もある。

レガシーシステムとの密接な連携が必要

 すでにRDBベースで稼働しているシステムに、限定的にXMLアプリケーションを新たに追加する場合、例えば、既存のバックエンドシステムから外部システムとメッセージ連携を行うようなケースでは、RDBのXML対応機能を利用するのが好ましいだろう。想定されるトランザクションの量にもよるが、最終的な入出力インターフェイスのためだけに、アプリケーションをNXDBに対応させるのはコスト的にも得策ではないし、開発者に不要な学習工数を強いることにもなりかねない。

管理すべきデータ項目が固定的

 前回の記事でも述べたとおり、NXDBを採用する最大の理由は、データの管理項目が頻繁に変更されても対応が容易であるからである。開発の初期段階でデータ項目が100%決定していなくても、また、運用途中で管理項目が細分化・拡張された場合にも、NXDBならば部分木を拡張するだけでよい。スパイラル開発、パイロットスタートが可能なのである。

 しかし、特に「基幹系」と呼ばれる業務の根幹を占めるシステムなどでは、どれだけ不確定な項目があるだろうか。たとえ、業務の変更が発生した場合でも、その性質上、軽々しく項目を追加すればよいというものではない。当該項目の意味と運用上のさまざまなルールを関係者間で取り決めて、ようやく項目を追加することができるのだ。

 このような運用を前提とした場合、NXDBの可変性にはさほどの意味はない。

RDBによるXML対応の4つのアプローチ

 RDBによるXML対応といっても、一口に言い表せるものではない。というのも、NXDBは「ネイティブにXMLを格納する」というその性質上、大きな枠取りには共通する点も多く見られた。しかし、RDB製品によるXML対応はそうではない。本来、XML文書を格納するようには設計されていないRDBにXMLを格納するために、RDB製品ベンダ各社はさまざまな取り組みを試みている。NXDBが未成熟の領域であるのと同様、またはそれ以上に、RDBのXML対応はまだまだ始まったばかりの取り組みなのである。以下では、そのRDBの多様なXML対応の状況を大きく4つにカテゴライズしてみよう。

直接格納型

 最もクラシカルな手法である。CLOB(長文字列型)/BLOB(長バイナリ型)/VARCHAR(文字列型)などに、XML文書をそのまま格納する方式であり、基本的にはすべてのRDB製品で対応可能。XML文書のパスのみをデータベース管理し、データ本体はファイルシステム上に保持するという手法もある。

 ただし、検索に際しては、あくまでフラット(プレーン)なテキストとして扱われるのみなので、タグ付けされた半構造化データとしてのメリットは享受できない。もしXML文書として操作したい場合にも、アプリケーション側でパース(解析)をはじめとした処理操作をすべて実装する必要がある。

図1 直接格納型

マッピング型

 XML文書における要素や属性を、個々のフィールドにマッピングする。常にリレーショナルテーブルに変換されるので、格納後はデータソースがXMLであったかどうかにかかわらず、通常のSQL操作が可能である。

 ただし、RDBの実装によってはマッピングの定義自体が困難である点、そしてマッピング処理自体が極めて高価な処理であるため、大量のトランザクション処理には不向きである点など、問題点も少なくない。

図2 マッピング型

ハイブリッド型

 直接格納型の進化版。先にも述べたように、ただ単にXML文書を文字列としてフィールドに格納するだけでは、(半)構造化データとしてのXMLフォーマットのメリットを享受することはできない。

 しかし、ハイブリッド型ではフィールドに格納したXML文書に対して、専用の補助構造を用意している。つまり、検索などに際してよく使用する要素や属性に対して、内部的にインデックスを用意することで、検索のパフォーマンスを向上させられる。

図3 ハイブリッド型

ネイティブ型

 NXDBに限りなく近いアプローチである。XML文書をDOMツリー(オブジェクト)に展開したうえで格納する。すでにパース済みの形態で保存されるため、アプリケーションからの読み込みに際しても再パースの必要などがなく、高いパフォーマンスが望める。専用のデータ型として用意されている場合と、Javaのクラス型などとして疑似的に実現されている場合とがある。

図4 ネイティブ型

RDBの主要製品

 さて、XML対応RDB製品の概要を理解できたところで、そろそろ具体的な製品紹介に移ろう。

 本稿では、主要なRDB製品の中から以下の4製品をピックアップして紹介する。まずは4製品の特性についてマトリックス表にまとめてみたので、ご覧いただきたい。まだまだ「XML対応」という分野自体が黎明期にあるせいか、各社の対応がNXDB製品以上にさまざまであるのが面白い。

製品名 リンク
Microsoft SQL Server 2000
DB2 Universal Database V8.1
Sybase Adaptive Server Enterprise 12.5
Oracle XML DB
XML対応RDB製品一覧(クリックすると製品比較表が開きます

 また、非常にざっくりとした切り口ではあるが、これら4製品を「ネイティブ型かリレーショナル型か」「独自技術か標準技術か」という切り口で図示してみた。ここで言う独自技術とは標準技術を含んだうえで、どれだけ独自技術を実装しているかに着目している。このバブルチャートを見ても、各社製品がそれぞれに独自のアプローチで「XML対応」に取り組んでいることが分かるだろう。

図5 XML対応RDB製品のカテゴリ別分布図

 では、いよいよ次ページから各RDB製品について紹介していくことにしよう。

  1/5 Microsoft SQL Server 2000

Index
XMLデータベース製品カタログ 2003
〜XML対応リレーショナルデータベース編〜
XML対応リレーショナルデータベース概要
  Microsoft SQL Server 2000
SQLXMLで飽くなき「XMLレス」XML対応への挑戦
  DB2 Universal Database V8.1
企業内データソースの戦略的な統合を目指す
  Sybase Adaptive Server Enterprise 12.5
JavaオプションでシンプルなXML対応を実現する
  Oracle XML DB
限りなきネイティブXMLデータベースへの挑戦

関連記事
 ・XMLデータベース製品カタログ 2003 〜ネイティブXMLデータベース編〜
 ・XMLサーバカタログ 2001〜Summer 〜XMLデータベース編〜
 ・.NET Enterprise ServersのXML度を探る

「XMLデータベース製品カタログ2003」



XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間