XML
データベースは、XML形式のデータを格納、管理、検索するための
データベースシステムです。広義には、XMLデータを扱うことができる
データベース全般を指しますが、狭義にはXMLのツリー構造をそのまま
データ構造として保持するものを指します。しかし実際には、既存の関係
データベースにXMLデータを格納したり、
テキストファイルとしてXMLデータを保存するなど、様々な形態が存在します。
近年では、XPathや
XQueryといったクエリ言語を用いてXMLデータを検索できる
データベースをXML
データベースと呼ぶことが一般的です。
従来の 関係
データベース(RDB)では、
データ構造の変更が運用中に困難である一方、XML
データベースは非常に高い拡張性を持ちます。これは、XMLがスキーマを必須とせず、整形式(Well-formed)であれば許容されるという柔軟な仕様に基づいています。このため、開発段階で
データ構造が完全に決定していなくても、開発を進めやすく、途中で
データ構造が変化する可能性があるシステムを比較的容易に構築できます。
以前は、関係
データベースにおける
SQLのような統一規格が存在しないことが課題でしたが、近年ではXPathや
XQueryを用いたXML:DB規格が策定され、NeoCoreXMSやTX1などの製品に採用され始めています。また、性能面での課題も存在しましたが、
ハードウェアや
アルゴリズムの進化によって改善が進んでいます。関係
データベースが性能問題を克服してきた歴史と同様に、XML
データベースも同様の発展を遂げることが期待されています。
現在では、Oracle Database、
IBM DB2、
Microsoft SQL Serverといった主要な関係
データベースでもXPathや
XQueryによる検索機能が実装されており、XMLデータを格納する
データベースの選択肢が広がっています。しかし、XMLデータの量や階層構造の深さ、パフォーマンス要件によっては、慎重な製品選定が必要です。ベンチマークテストの結果などを参考に、XML
データベースと関係
データベースのどちらを採用するかを決定することが重要です。
BaseX: XPath/XQuery、全文検索をサポートしたオープンソースのXMLデータベースです。
Cyber Luxeon:
オブジェクトデータベースObjectStoreをコアエンジンとするXML
データベースです。
DB2 9 pureXML: IBM社が開発・販売するDB2 9に搭載されたpureXML機能です。
EsTerra: 日本産のXML
データベースで、スキーマレス、高速動作、テラバイト級のデータを扱えることが特徴です。
NeoCore XMS: 独自のDigital Pattern Processing技術により、高速なデータ処理と柔軟なデータ構造への対応が可能です。
Oracle XML DB: Oracle Databaseに実装されたXML
データベース機能です。
Tamino: ドイツSoftware AG社が開発した、世界で広く利用されているXMLデータベースです。
TX1:
東芝デジタルソリューションズが販売しているXML
データベースです。
Xindice: Apache XMLプロジェクトで開発されたネイティブXMLデータベースでしたが、現在はApache Atticに移管されています。
関連事項
XML: データを構造化して記述するためのマークアップ言語です。
XPath: XMLドキュメント内の要素や属性を指定するための言語です。
XQuery: XMLドキュメントを検索・抽出するためのクエリ言語です。
関係データベース: データをテーブル形式で管理するデータベースです。
ディレクトリサービス: ネットワーク上のリソース情報を管理するシステムです。
*
永続データ構造: プログラムの実行が終了してもデータが保持される
データ構造です。
XML
データベースは、XMLデータの柔軟性を活かし、変化する可能性のあるデータを効率的に管理する上で重要な技術です。関係
データベースとの融合も進んでおり、適切な
データベースを選択することが重要です。