Database Watch 5月版 Page 1/2

2005年、RDBMSの対抗軸はXMLへ向かう?


加山恵美
2005/5/14

 今月はXMLデータベースについて、データの格納方法を中心に比較してみます。システムでXML形式のデータを扱う必要性はますます高くなる中、データベースはただXMLと連携するだけではなくXMLの特性に合わせた進化を迫られています。アプリケーション間を行き交うXMLとデータを収納するデータベース、そのデータ格納方法やXML機能の対応具合はデータベースごとに個性が出ていて興味深いです。

OracleはLinux 2.6カーネルに対応

 まずは最近の主な話題から。オラクル製品のLinux 2.6カーネルへの対応が進んでいます。オラクル製品の「Red Hat Enterprise Linux 4」への対応日程が4月21日に公表されました。それによると、すでに4月中には「Oracle Database 10g Release 1」と「Oracle9i Database Release 2(要パッチ)」が対応済み、「Oracle Collaboration Suite 9.0.4」は5月10日に対応予定、「Oracle Application Server 10g」は準備中となっています。IBMのDB2は先月紹介したとおり「対応済み」で、Linux 2.6カーネルの普及は確実に広まっています。

 マイクロソフトからは最新プレビュー版リリースのお知らせです。4月26日から「Visual Studio 2005」および「SQL Server 2005」の最新プレビュー版(日本語版)が提供されるようになりました。また翌日の4月27日からは「Microsoft SQL Server 2000 Reporting Services Service Pack 2」日本語版がダウンロード可能になりました。このSP2は不具合の修正に加え、新たに「SharePoint Webパーツ」が追加提供されポータルサイトとの連携機能が強化されています。

 スウェーデンのオープンソースRDBMSであるMySQLに企業版のコミュニティができたようです。NECシステムテクノロジー、スマートスタイル、住商情報システム、タイムインターメディア、ホットリンクの5社はMySQL普及推進のためのMySQLパートナー会(JMPA:Japan MySQL Partners Association)を設立しました。オープンソースRDBMSのエンタープライズ化が今後ますます進展しそうです。

RDBMSご三家は年内にはハイブリッドへ

 それでは、RDBMSではどうXMLを格納するかを考えてみます。基本的なことですがRDBMSはデータをテーブルに格納するのに対して、XMLのデータはツリー型をしています。この構造の差をどう解決するか、その方法は2005年2月版で解説したネイティブXMLデータベースやXMLが使用可能なデータベースなどに分類できます。

 ここで「CLOB型」と「BLOB型」というデータ型を覚えておいてください。これらはSQL99で追加された型です。CLOB型とは「Character Large OBjects」で、大きい容量向けのテキストです。バイナリだとBLOB型です。これらの型ではギガバイト級のデータを格納することができるようになっています。

 さて具体的なRDBMS製品で比べます。「IBM DB2 UDB V8」では、XMLのツリーとRDBMSのテーブルの橋渡しをする手段として「XML Extender」があります。これによるXMLデータの保存方法は「XML Column」と「XML Collection」の2種類に分かれます。XML ColumnはXMLのドキュメントをそのままCLOB型のカラムに挿入するイメージです。そのためタグが残ります。ただし検索効率を向上させるために、インデックス用のサイドテーブルを作成します。一方、XML CollectionはXMLの文書構造をテーブルにマップします。ここではXMLドキュメントは分解され、タグなしのデータがテーブルに保管されます。どちらを選ぶかは、XMLドキュメントの性質や更新の頻度などを考慮して使い分けることになります。

 「Oracle Database」もCLOB型があるため、先に述べたような2通りの格納が可能です。Oracle Databaseがデータベースに(ネイティブな)XMLをそのまま格納できるようになったのは「Oracle9i Database Release 2」の「Oracle XML DB」からです。Oracle XML DBではCLOB型のほかにDOMのオブジェクト型も格納できるようになっています。このネイティブなXMLの格納は非構造化ともいいます。一方、XMLドキュメントをテーブルにマップする格納方法もあります。こちらが構造化です。構造化だとスキーマ言語は「XML Schema」しか使えません。非構造化なら当然ながら「XML Schema」「DTD」「使用なし」の3通りが選べます。

 「Microsoft SQL Server 2000」ではXMLをテーブルにマップして格納します。つまり構造化型の格納方法です。SQL Server 2000ではXMLデータとの相互変換がXML連携の主流だったせいかCLOB型はないようですが、ほかのデータベースとの関係でCLOB型のサポートはあります。しかしネイティブXML対応の重要性が高まり、SQL Server 2005ではXMLのドキュメントをそのまま(またはその断片を)格納できるXMLデータ型が登場します。

 ベンダごとに表現や手法に差異はありますが、商用RDBMSは当初はXML連携機能を加えることでXMLを利用可能なデータベースになることから始まり、近年ではネイティブXMLデータベース機能という選択肢も追加するような方向へと進んでいます。すでにOracleとDB2がネイティブ対応しており、残るSQL Serverは2005で追い付きます。2005年中には商用RDBMSご三家はすべてハイブリッドなXMLデータベースになるようです。(次ページへ続く)

  1/2

 Index
連載 Database Watch 5月版
2005年、RDBMSの対抗軸はXMLへ向かう?
Page 1
・OracleはLinux 2.6カーネルに対応
・RDBMS御三家は年内にはハイブリッドへ
  Page 2
・ネイティブXMLデータベースの定番製品
・大容量、超高速など、個性派ネイティブXMLデータベース


Database Watch



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

注目のテーマ

Database Expert 記事ランキング

本日月間