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 記事ランキング

本日月間