XMLデータベース製品カタログ 2003
〜XML対応リレーショナルデータベース編〜
2003/11/15
紹介する製品 Microsoft SQL Server 2000 DB2 Universal Database V8.1 Sybase Adaptive Server Enterprise 12.5 Oracle9i XML DB |
DB2 Universal Database V8.1 |
■企業内データソースの戦略的な統合を目指す
DB2 UDB(Universal DataBase)は、IBMによる主力データベース製品である。DB2 UDBの大きな特徴は「DB2 Extender」と呼ばれる拡張機能を追加することで、リレーショナルテーブル以外のさまざまなオブジェクトをデータベースに格納できるようになる点である。DB2 Extenderは、Image Extender、Audio Extender、Net Search Extender(Text Extender)、Spatial Extender(地理情報)、Video Extenderのような製品群から構成されるが、XML Extenderもまた、このDB2 Extenderを構成する拡張機能の1つなのである。
そうした意味で、DB2 UDBのXML対応をそれ自体独立した機能として概観することは、ややもすれば誤解のもとであるかもしれない。DB2 UDBのXML対応とはむしろ、企業内に散在したさまざまなデータリソースを「一元的なビューで情報統合する」ための一手段にすぎないのである。IBMでは「IBM DB2 Information Integrator」と呼ばれる、情報資源統合のためのソリューション製品(ミドルウェア群)を提供しているが、DB2 UDBもまた、この壮大なソリューションの中のごく一部ととらえるのが順当であろう。
図1 IBM DB2 Information Integratorのアーキテクチャ |
本稿では記事の性格上、あくまで壮大な情報統合戦略の中でのDB2 XML Extenderに絞って、機能概要を紹介することにしたい。DB2 XML Extenderは、DB2 UDB上でXMLドキュメントを管理するために、極めてオーソドックスな機能を提供する製品である。
■XML ColumnとXML Collection
XML Extenderは、XMLドキュメントをデータベースに格納するための手段として、大きく2つ――「XML Column」と「XML Collection」とを提供する。以下では、これら2つの手段の特性、長所と短所を挙げておこう。
XML Column
XML ColumnはXMLドキュメントを1つのテーブル列にそのまま格納するために使用する、一種のデータ型と思えばよいだろう。特殊なデータ型というわけではなく、実体は、以下のいずれかのSQLデータ型から構成されている。
|
||||||||
XML Columnに格納できるSQLデータ型 |
XML Columnの3つのデータ型
ただし、このままではXML文書はプレーンテキストとなんら変わることがなく、構造化データとしての意味がなくなってしまうだろう。そこでXML
Extenderでは、参照に際してよく使用する要素や属性を「サイド表」と呼ばれる補助テーブル(インデックス)に登録しておくことで、SQL問い合わせのパフォーマンスを改善することができるようにしている。主に参照を目的としたXML文書の格納に適したアプローチである。
図2 サイド表を使ったインデックス |
また、Text Extender(Net Search Extender)と連携することで、全文検索やファジー検索、シソーラス検索などにも対応しているのがうれしい。これによって、比較的タグ付けの緩いXML文書を検索する場合にも、高いパフォーマンスを得ることができるだろう。
XML Collection
XML ColumnがXML文書全体を1つのフィールドに格納するのとは対照的に、XML CollectionではXML文書を複数のフィールドに分解して格納する。データ型による容量の制限がない点、XML文書が要素・属性単位にリレーショナルテーブルに分解される点などから、部分的に(かつ頻繁に)更新するXML文書を格納するのに適したアプローチである。
XML文書中の要素・属性とリレーショナルテーブルのフィールドとの関連付けは、「DAD(Document Access Definition)」と呼ばれるXML形式の定義ファイルで設定する。以下は、XML文書をデータベースにインポートする場合に使用するDADの例(抜粋)である。必要に応じて、指定されたDTD(文書型宣言)でXMLファイルの妥当性を検証することもできる。
|
|
リスト1 DADファイルによるXML文書とリレーショナルテーブルの関連付け |
同じ要領でDADファイルを使い、リレーショナルテーブルから取り出したSQLの結果セットをXML文書に展開したり、前述のXML Columnで使用するサイド表の定義を行うことも可能だ。DADファイルは、XML ExtenderにおいてXML文書とリレーショナルテーブルとを橋渡しする共通の定義ファイルだと思えばよいだろう。
なお、このDADファイルを生成するために、特別な構文を覚える必要はないことも特筆できる。WSAD(WebSphere Studio Application Developer) for Eclipseなどのツールを利用することで、GUI画面上でDADファイルを作成できる。
図3 WebSphere Studio Application DeveloperからDADファイルを生成(クリックで拡大します) |
図4 生成されたDADファイル(クリックで拡大します) |
■Webサービスへの対応
DB2 UDBでは、WebSphereアプリケーションサーバと連携することで、DB2 UDB内のデータを「XML Webサービス」として提供することができる。Webサービス実現の仕組みは極めてシンプルだ。WORF(Web services Object Runtime Framework)とランタイム設定ファイルとしてのDADXファイルをWebSphereにデプロイ(配置)するだけでよい。WORF自体はあらかじめ用意されたJavaサーブレットクラスであるので、開発者が行わなければならないのは、DADXファイルを用意することだけだ。
DADXファイルは、上述のDADファイルを拡張したXML形式の設定ファイルで、実行するSQL命令やストアドプロシージャ、サービス名などを定義できる。
|
|
リスト2 DADXファイルの例(DADXファイルには動的なパラメータや、DADファイルからの継承を含めることも可能) |
あとはクライアントからHTTP(またはSOAP)経由でサービスをリクエストすればよい。ストアドプロシージャやSQL命令の実行結果は自動的にXML形式に整形され、クライアントに応答される。
図5 DB2 UDBのWebサービス対応 |
3/5 | Sybase Adaptive Server Enterprise 12.5 |
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度を探る
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|