XMLデータベース製品カタログ 2003
〜XML対応リレーショナルデータベース編〜
2003/11/15
紹介する製品 Microsoft SQL Server 2000 DB2 Universal Database V8.1 Sybase Adaptive Server Enterprise 12.5 Oracle9i XML DB |
Sybase Adaptive Server Enterprise 12.5 |
■JavaオプションでシンプルなXML対応を実現する
Sybase Adaptive Server Enterprise(ASE)におけるXML機能とJavaオプションは切っても切れない関係にある。というのも、ASE上のXML機能はすべてASEデータベース内のJava対応オプション(Java仮想マシン)を利用して実現されているためである。これによって、ASEはコアなデータベースエンジンになんら影響を与えることなく、完全な外部機能としてのXML対応を実現している。
ASEのJavaサポート機能
そこで、まずはASEのXML対応について紹介する前に、前提となるJavaサポート機能を概説してみる。ASEでは、データベース内部に専用のJava仮想マシンを実装することで、データベースから容易にJavaクラスをコールすることができる。例えば、T-SQL(ストアドプロシージャ)からJavaメソッドを呼び出し、プロシージャとして利用することも可能であるし、そもそものSQLデータ型自体をJavaクラス型に割り当てることが可能なのである。
図1 Javaクラスをデータ型として格納 |
|
|
リスト1 Javaクラスをデータ型に持つテーブル |
例えば、“jcs.xml.resultset.RX”というJavaクラスのsql2Xmlメソッドは、SQL-SELECT命令による実行結果をXML形式のStringで返すメソッドだ。Javaメソッドは、SELECT命令を介して呼び出すことができる。
|
|
リスト2 jcs.xml.resultset.RXクラスからsql2Xmlメソッドを呼ぶ |
Javaメソッドをコールするに当たっては、あらかじめ該当のJavaクラスをSybase Central Java Editionと呼ばれる管理ツールを使ってインストールするだけでよい。「.jar」ファイルを登録するだけなので、慣れてしまえば作業自体はごく簡単だろう。
図2 管理ツール「Sybase Central Java Edition」からJavaクラスをインストールする |
命令の実行結果は以下のとおりである。
図3 リスト2に示したメソッドを呼び出した結果 |
また、いつもJavaメソッドをパッケージ名も含めた完全修飾名で指定するのは面倒だという場合には、SQLJ関数としてラッピングする機能も備えている。SQLJ関数の定義は、とても簡単だ。
|
|
リスト3 SQLJ関数の定義例 |
先述のSQL命令は以下のように記述することができる。これによって、命令を発行するユーザー側はJavaを利用しているということすら意識する必要がなくなるというわけである。
|
|
リスト4 SQLJ関数の呼び出し例 |
XMLネイティブのデータ型
さて、ASEでは、XMLドキュメントをデータベースに格納するための手段として、大きく2つ――「SybMemXmlStream」と「SybFileXmlStream」を提供する。これらはいずれも内部的にはJavaクラス型として扱われるもので、前述したASEのJavaオプションを利用したものである。ASEでは、XML文書をパースした結果をsybase.aseutils.SybXmlStreamインターフェイスの実装クラス(つまり、上記の2つのデータ型)を利用することで、メモリまたはファイルに保存できる。当然、格納時にDOMツリーに展開されているわけであるから、検索時にも再パースの必要はなく、高いパフォーマンスが望める。
インデックスによるパフォーマンスの改善
ASEでは、XMLドキュメントが保存・更新される機会よりも、圧倒的に「参照」される機会が多いことに着目して設計が行われている。この前提と「FIX(Fast Indexes for XML)」アーキテクチャ(特許出願中)に基づき、ASEはXML文書の検索効率を最適化している。
FIXアーキテクチャとは、XML文書内の特定タグについて補助インデックスを生成する仕組みのことをいい、これによってXML問い合わせの効率を最適化している。また、ASEでは、XML文書の部分読み込みを可能にすることで、リソースの消費を最大限に抑制している。
ただ、XML文書は必ずしもきちんとタグ付けされた構造化データばかりではない。限りなくプレーンなテキストに近い、緩いタグ付けのXML文書を格納することもあるだろう。そのようなデータに対応するために、ASEでは専用の全文検索エンジンである「Enhanced Full Text Search Specialty Data Store」を用意している。これによって、フリーフォーマットの文書を検索するに際しても、高いパフォーマンスを維持することが可能となる。
XML問い合わせ言語にはXQLを提供
XQL(XML Query Language)は、一般的なXML文書検索のために設計された問い合わせ言語で、ASE上にインストールして使用することも、スタンドアロンのアプリケーションとしてASE外部で利用することも可能である。
|
|||||||||||||||||||||
SQLとXQLの比較表 |
ただし、現行のXQLにはINSERT/UPDATE/DELETEなどのアクション・クエリは用意されていないので注意すること。XML文書内のノードを更新したいといった場合にも、現行のASEでは列全体(XML文書全体)を更新する必要がある。「参照」用途を主眼に置いたそのポリシーゆえんの仕様ではあるが、この点は次期バージョンでの改善に期待したい。
■次期バージョン12.5.1での主な変更点
2003年10月17日に、ASEの次期バージョン12.5.1がプレスリリースされた(日本語版の発売は2004年の予定)。データベースエンジン・コアな部分だけではなく、XML対応機能についても、いくつかの重要(かつ顕著)な変更点が見られるので、本稿でも簡単に触れておくことにしよう。
Webサービスへの対応強化
ASE Web Servicesを使用することで、ASE自身をWebサービスの提供者(プロデューサ)として、あるいは、外部のWebサービスに対するクライアント(コンシューマ)として機能させることができる。これによって、インターネットブラウザのようなHTTPクライアントは、ASEに対してSOAP経由でデータを要求し、その結果セットをXML形式で受け取ることが可能になる。
ネイティブなXML処理エンジン
新バージョンではXML処理エンジンがASEのネイティブな機能として実装される。その結果、Java仮想マシンの起動などが不要になるため、XML用途でASEを利用する場合にさらなるパフォーマンスの向上が望めるだろう。また、for XML句の利用によって、リレーショナル表を動的にXML文書として出力することが可能になる。よりプログラミングレスなXML連携の実現に期待したい。
図4 ASE 12.5.1で実現されるIntegrated XML Data Managementの構成 |
オープンスタンダードへの対応
W3C標準のXPath 2.0やXQueryに対応することで、より複雑なXML問い合わせにも対応できるようになる。標準技術の採用で、そのほかの製品との相互運用性、可搬性の向上を期待できるだろう。
4/5 | Oracle9i XML DB |
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」の詳細も紹介する
|
|