XMLデータベース製品カタログ 2003
〜XML対応リレーショナルデータベース編〜
2003/11/15
紹介する製品 Microsoft SQL Server 2000 DB2 Universal Database V8.1 Sybase Adaptive Server Enterprise 12.5 Oracle9i XML DB |
Microsoft SQL Server 2000 |
■SQLXMLで飽くなき「XMLレス」XML対応への挑戦
マイクロソフトのSQL Server 2000は、インターネット対応という切り口で飛躍的な進化を遂げたバージョンでもある。単にリレーショナルテーブル(2次元表)とXMLドキュメントの橋渡しを提供するというにとどまらない。URLクエリやアップデートグラムなど豊富に提供されたミドルウェアを利用することで、開発者はオブジェクト指向やXMLなどの高度な知識を習得する必要がない。あたかも従来のRDBを利用しているのと同じ要領でXML文書を入出力することができる。
このSQL ServerのXML対応機能を一手に握っているのが、SQLXML.DLLだ。
図1 SQLXML.DLLのアーキテクチャ |
SQLXML.DLLは、SQL Server 2000とは独立したモジュールとして、ここ数年いくたびものバージョンアップを繰り返し、変化の早いインターネットの世界に対して迅速なソリューションを提供している。以下に、各バージョンで追加された機能概要を簡単に俯瞰(ふかん)してみよう。SQL Server 2000に標準で付与されたFor XMLやURLクエリなどの機能については、本稿では割愛する。詳細は、別稿「.NET Enterprise ServersのXML度を探る」などを参照してほしい。本稿では、その後追加されたSQLXML.DLLの機能を中心にSQL ServerのXML対応を紹介することとしたい。
|
||||||||||||
SQLXMLのバージョンと機能 |
■SQLXML.DLLのバージョンと追加機能との対応
注釈付きXMLスキーマによるマッピング
SQL Serverと(後述する)Oracle DatabaseとのXML対応のアプローチは、とても対照的である。というのも、Oracle DatabaseがXMLドキュメントをネイティブにDOMツリーとして格納するのに対し、SQL ServerはあくまでRDBのリレーショナル表に各要素をマッピングすることを基本としている点である。つまり、SQL Serverでは内部的には常にXML文書を「リレーショナル表」として扱い、入出力のタイミングでのみXMLとして扱うことで高速なデータ処理とRDBの堅牢性をそのままXMLの世界で利用することに成功している。SQL Serverの最大の特性とは、SQL ServerのXML対応をあくまでSQLXMLというインターフェイス部に限定し、コアとしてのデータベースエンジンはRDBの世界を徹底した点にあるともいえよう。
本題に戻ろう。SQL ServerではXML文書をリレーショナル表に展開するに際して、注釈付きスキーマを利用する。注釈付きスキーマとは、文字どおり、一般的なスキーマに注釈を加えたものである。この注釈によって、XML文書の要素・属性に対してリレーショナル表のフィールドを関連付けている。具体的な注釈付きスキーマの例を見てみよう。
|
|
リスト1 注釈付きスキーマの例 |
上のサンプルでは、<Employee>要素はsql:relation属性を使用してEmployeesテーブルに、属性EmpID、FName、LNameは、それぞれsql:field属性を使用してEmployeesテーブルのEmployeeID、FirstName、LastNameフィールドにマッピングされる。
注釈付きスキーマを利用することで、リレーショナル表とXML文書とを双方向に関連付け、リレーショナル表をXML文書から更新したり、あるいはリレーショナル表からXML文書を生成したりといった双方向変換が可能になるというわけだ。ちなみに、2003年11月時点では英語版のみであるが、「SQL Server XML View Mapper 1.0」というツールが提供されており、スキーマ文書とリレーショナル表とのマッピングをGUIベースで行うことができる。
なお、SQL Server2000の標準機能では、スキーマ文書としてマイクロソフト独自のXDRが採用されていたが、SQLXML2以降を導入することでW3C標準のXML Schemaも使用可能である。
XMLバルクロードによるXML文書の一括アップロード
前述したように、SQL ServerにおけるXML対応の基本ポリシーは、リレーショナル表へのXML文書のマッピングである。つまり、入出力に際しては、なにかしらの形でXML文書⇔リレーショナル表の相互変換が必要になるということである。URLクエリやOPENXMLなどの技術を利用することで、多くの場合、開発者はこの変換処理を意識する必要はないが、サーバリソースに対してマッピング処理が極めて高負荷なプロセスであるのも事実である。
これを改善する目的で提供されているのが、Bulk Import――XMLバルクロード機能なのである。XMLバルクロードとは、要は大量のXML文書をSQL Serverに一括アップロードするための機能である。トランザクション単位で変換処理を行うことが問題であるのならば、バッチ処理として変換・インポート処理を行うことで、システム的な負荷を軽減しようというのが、その意図である。
XMLバルクロードにはINSERTだけではなく、UPDATEやDELETEも可能なXMLアップデートプログラムも用意されている。
アップデートグラム
アップデートグラムは、UNIXにおけるgrepのような機能だと思っていただければよいだろう。正規表現パターンで既存のXMLドキュメントからマッチングするパターンを特定し、該当する個所を置き換える。アップデートグラムを利用することで、階層を意識しない、簡易なXML文書へのアクセスが可能となる。
|
|
リスト2 アップデートグラムの例 |
■XML Webサービスへの対応
RDB製品のXML対応といった場合、その内容は大きく2つに分類される。すなわち、1つが「XMLとRDBとの相互運用性」――XML文書をRDBにどのようにマッピングするか、入出力するかという世界であり、そして、もう1つには「XML Webサービス」の世界である。
その区分からすると、SQL Server 2000はSQLXML2の時点で前者の対応をほぼ完了していたといえる。つまり、後継のSQLXML3以降において、「XML Webサービス」対応へと踏み出したのは、いわば必然の流れだった。2003年6月に公開されたSQLXML3では、Transaction-SQL(ストアドプロシージャ)やXMLテンプレートをSOAPプロトコル経由で呼び出す機能が追加された。SQLXML3を利用することで、SQL Serverは「ノンプログラミング」でTransaction-SQLの結果セットをXMLフォーマットで出力することが可能になったのである。
SQLXMLAでは「XML for Analysis Services」が追加されている。SOAPベースでデータソースの検出やクエリ問い合わせを実行できることに加え、SQL Server OLAP Servicesのキューブにアクセスできるようになった。これによって、インターネット経由でのデータ分析やデータマイニング・サービスの提供が可能となる。XML for Analysis Servicesは主要なBI(Business Intelligence)ベンダも賛同している規格でもあり、今後、XML BIのデファクトスタンダード候補としても期待できるだろう。
図2 XML for Analysis Servicesの概念図 |
XMLベースで取り出したデータは、ActiveXコントロールを介することで、クライアント(Office製品やインターネットエクスプローラなど)上で手軽に加工・分析できるのが特徴だ。最後に、XML for Analysis Servicesで取得した店舗別販売実績データを、インターネットブラウザ(ASP .NETアプリケーション)上で参照している例を引用しておこう。
図3 XML for Analysis Servicesを使ったASP .NETアプリケーション(クリックで拡大します) |
2/5 | DB2 Universal Database V8.1 |
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」の詳細も紹介する
|
|