XMLサーバカタログ/2001 Summer

〜XMLデータベース編〜

リレーショナル型

SQL Server 2000/マイクロソフト

 SQL Server 2000では、テーブル内に格納したデータをXML形式で出力するための機能を中心に、いくつかのXML機能が提供されている。

 SQL Server 2000では、特にオプションのソフトウェアを導入しなくともXML機能を利用することができる。XML文書の形式でSQL文の結果を出力する機能や、テーブルそのものを1つの大きなXML文書と見なすことができる機能などがある。

 SQL文の出力結果をXML文書として受け取る機能が「FOR XML句」だ。検索を行う命令である「SELECT文」の最後に「FOR XML」と記述するだけで、検索結果が自動的にXML文書形式になる。FOR XML句にはいくつかのオプションがあるが、基本的には列名が自動的にタグ名として使われる。また、この機能の応用として、SQL Server 2000とInternet Information Serverを組み合わせると、WebブラウザからSQL Serverへの問い合わせで、結果をXML文書として受け取ることができる。Webブラウザ上でスタイルシートと組み合わせれば、簡単にテーブル形式で結果を表示させることが可能だ。

 テーブルをまるごと大きなXML文書に見なしてしまう機能が「XMLビュー」だ。前述の「FOR XML句」は、検索結果をXML形式にしたが、XMLビューでは検索前のデータがすでにXML文書に見える。そのため、XMLビュー経由でデータを取り出すときはSQL文を利用せず、XPathを利用してデータを特定する。

 また、XML文書をDOMツリーに変換し、さらにそれをSQL文から操作することができるOpenXML関数、XML文書からデータをロードするバルクロード機能などがある。

 SQL Server 2000のXML機能については、別記事「.NET Enterprise ServersのXML度を探る」でも解説している。

- マイクロソフトのホームページSQL Server 2000製品情報

Oracle8i/日本オラクル

 Oracle8iには、XML Developer's Kit(以下XDK)がバンドルされており、ここにXMLパーサやXSLTエンジン、XMLをデータベースに入出力するためのユーティリティなどが含まれている。XDKはOracle8iとJDK 1.1をサポートしており、基本的にJavaプログラムから利用することが想定されている。Oracle8iのXML機能は、後述するiFS以外はすべてこのXDKで実現されているため、まずはこのXDKについて紹介していく。

 XDKにはいくつかのモジュールが含まれているが、中心となるモジュールはOracle XML Parserだ。XML文書へアクセスするAPIとしてDOM、SAXをサポートし、XSLTエンジンも備えている。このパーサはOracle8iと組み合わせて動作させることはもちろん、単独のXMLパーサとしても利用できる。

 データベースへの問い合わせ結果をXML文書として出力する機能を持つのが、XDKの中の「XML SQL Utility for Java 」(以下SQL Utility)である。SQL Utilityは、Oracle8iのオプションというよりも、Javaクラス群というべきものであり、通常のJavaアプリケーションから呼び出して利用する。基本的には、JavaアプリケーションがJDBC経由で取得した検索結果を、SQL UtilityでXML文書化する、という使い方になる。

 さらに、XDKにはXSQL Servletと呼ばれるサーブレットが用意されている。XSQL Servletは、XML文書の中に独自の書式でSQL文のSELECT命令を埋め込んでおくと、その部分が検索結果と置き換わって出力される、といった機能を備えている。そのため、複雑なXML文書の中に、検索結果を容易に埋め込める。

 Oracle8iでは、データベースの内容をHTTPやSMB経由(Windowsのファイル共有プロトコル)などで参照することができるInternet File System(以下iFS)でもXMLに対応している。iFSを経由して、テーブル内のXML文書を容易に取り出すこともできる。

 Oracle9iでもXDKとiFSは同様に実装されているため、基本的な機能はバージョンアップがあっても変わらない。

 XDKについては、連載記事「XMLツールでプログラミング」で解説している。

- 日本オラクルのホームページOracle8i製品情報

DB2 UDB/日本IBM

 DB2 UDBは、エクステンダーと呼ばれる拡張機能で、リレーショナル以外のさまざまなオブジェクトをデータベースに格納することができるようになる。エクステンダーはオブジェクトの種類ごとに提供されており、すでに「テキスト・エクステンダー」「イメージ・エクステンダー」「オーディオ・エクステンダー」「ビデオ・エクステンダー」「地理情報エクステンダー」などがラインナップされているが、ここに「XMLエクステンダー」も用意されており、DB2に対してXML文書の入出力を可能にしている。

 XMLエクステンダーでは、XML文書を列のデータ型として格納することができる。また、XML文書を分解し、複数の表の列に分解して格納することもできる。いずれの場合でも、XMLエクステンダーはXML文書の要素および属性のインデックスを作成し、それらに対する検索が可能。さらに、テキスト・エクステンダーを経由して、XML文書またはその分解された部分に対して、全文検索が可能だ。また、既存のテーブルからの検索結果を組み立ててXML文書として返すこともできる。

- 日本IBMのホームページXMLエクステンダー製品情報

 

iConnector/インフォテリア

 iConnectorは、それ自身がデータ管理機能を備えたデータベース製品ではない。各種データベースに格納されたデータをXML形式に変換して取り出したり、逆にXML形式のデータを各データベースに保存するミドルウェアだ。XML文書内のデータをデータベースの複数のテーブルに書き込んだり、また、データをキーとして、リレーションを設定してあるテーブル間のデータ操作も可能となる。

 XML文書とデータベースとの変換ルールを編集するときは付属の「iRuleGenerator」というGUIツールを用いる。マッピングルールはタグや属性を元に設定できる。出来上がった変換ルールは、XSLT 1.0 1999/4/21付ドラフト版に準拠している。

 XML文書からデータベースへ、またその逆へと変換されるデータは、いったんTDF(Transformation DriverFormat)というXML形式の中間フォーマットに変換される。そのため、iConnectorは、このXML文書からTDFへと変換するトランスレータ部分、およびTDFからデータベースへの相互入出力を行うドライバ部分から構成されている。

 iConnectorは、実行形式(EXE形式)による直接起動に加えて、最新版のバージョン2.0ではCOMインターフェイスやJavaインターフェイス経由での利用にも対応している。最新版ではメモリへの常駐(デーモン化)や、データベースとの接続状態を維持するプーリング機能を搭載し、パフォーマンスを向上させた。

 現在iConnectorシリーズが対応しているデータベースは、Microsoft Access、Oracle 7/8、DB2(UDB V6.1以降)、Lotus Notes/Domino(R4.6以降)、Microsoft SQL Server 7.0。

- インフォテリアのホームページiConnector製品情報

 

そのほかのデータベース製品

 ここで紹介した以外にもXMLのサポートを開始しているデータベースは多い。日立のHiRDBでは、Adapter for XMLと呼ばれるモジュールを提供している。Adapter for XMLはXMLパーサを内蔵しており、データベースの内容をXML文書形式で出力したり、XML文書形式のデータをデータベースに格納できる。

 サイベースのAdaptive Server Enterprise 12では、Java上で動作するXMLパーサを提供。XML文書をテキストデータとしてテキスト型列に格納したり、要素と列をマッピングして、要素の内容だけを列に格納する、といった方法を提供している。さらに、テキストデータの中に、検索結果を埋め込む形式でのXML文書の出力機能もある。

- 日立のホームページAdapter for XML製品情報
- サイベースのホームページAdaptive Server Enterprise 12製品情報

 

6/6  

Index
XMLサーバカタログ/2001 Summer
〜BtoBサーバ編〜
  BtoBサーバに求められる3つの機能
  XML/インターネット型、データベース型
Asteria/インフォテリア
BizTalk Server 2000/マイクロソフト
eXcelon B2B Integration Server/日本エクセロン
コラム:XMLアクセラレータでBtoB通信を高速化
  EAI型、Webアプリケーションサーバ型
Ariba Buyer/アリバ
Silver Stream xCommerce/テクマトリックス
そのほか紹介できなかったBtoBサーバ
〜XMLデータベース編〜
  リレーショナルか、それともXMLネイティブか
  XMLネイティブ型
Tamino/ビーコンIT
Yggdrasill/メディアフュージョン
コラム:eXcelonとAsteriaのストアは何型?
リレーショナル型
Oracle8i
DB2 UDB
iConnector
そのほかのデータベース製品


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

注目のテーマ

HTML5+UX 記事ランキング

本日月間