00:00XMLDBの概論について説明します。Managerの基本的な使用法を説明します。Managerの起動、DXEサーバーへの接続パーティション、XMLStore、ディレクトリの作成XMLドキュメントの作成XMLドキュメントの更新XMLドキュメントの削除XMLドキュメントに対するクエリーの実行まとめ参考資料はじめに1998年にXMLがW3Cで勧告となり、その直後からXMLがITシステム上で急速に用いられるようになりました。その当初、XMLデータの保存先としては、ファイルシステム上に直接保存する手法がよく用いられました。ファイルシステム上に直接保存する方法ではファイルシステムの制約に依存し、さまざまな問題があることから、データの格納先として「XMLデータべース(以降、XMLDB)」が必然的に登場しました。その当時に登場したXMLDBは、第一世代のXMLDBと呼ばれます。第一世代のXMLDBは、データを格納する際にスキーマを必要としたことや、検索に時間がかかるなど、使い勝手、性能などの面で実用的ではない製品も多かったいうこともあり、あまり普及は進みませんでした。その後、スキーマレスという大きな特徴を持ち、検索性能などが大幅に向上した第二世代と呼ばれるXMLDBが世の中に登場します。この第二世代のXMLDBの登場により、XMLDBは実用段階に入ったと言われています。実際のところ、まだまだXMLDBを活用しきれていないというのがIT業界の現状ではないでしょうか。2007や、OpenOffice.orgのドキュメントファイルがXMLに完全対応することもあり、それらのオフィスドキュメントのデータ化によるフル活用の時代がやってきます。ある調査では、いままでにオフィスドキュメントや、業務データなど、電子化された全データのうち、構造化され管理されているデータはわずか15%程度という結果が出ています。これらのデータは、半定型的で、複雑な構造であり、頻繁に構造の変更が入るという性質を持っています。そのため「リレーショナル・データベース(以降、RDB)」で管理にするには、管理不可能か、管理するにはコストがかかりすぎるデータであると考えられていました。管理をあきらめていたデータであり、完全に活用しきれていなかったデータであると言えます。XMLDBをITソリューションの一手段として視野に入れれば、今まで管理不可能とあきらめていたデータを活用できる可能性が大きく広がります。Luxeonを通じて、XMLDBの基本について紹介します。本連載で扱う内容は、次のとおりです。本稿ではまず、この中からXMLDBの概論を説明します。Managerの基本的な使用法を説明します。対象読者XMLに触れたことがある方、RDBなどのデータベースを操作したことがある方を対象とします。Luxeonの説明に入る前に、まずはXMLDBの概要について説明します。RDBとXMLDBの比較XMLDBについて説明する際に、その比較対象としては外せないのがRDBです。RDBとXMLDBの違いについて比較し、以下の表にまとめました。弱い格納するデータの構造RDBに格納するデータは定型的で構造的なデータが向いています。それに対し、XMLDBに格納するデータは半定型的で、半構造的なデータが向いています。半構造的なデータとは、構造自体は持っているが、RDBのように、はっきりと構造を確定していないデータのことです。XMLDBにRDBで格納できるような構造的なデータを格納しても、あまりメリットはないでしょう。データスキーマの必要性RDBは、スキーマをまず第一に設計/定義し、作成するのが大前提です。それに対し、XMLDBはスキーマがなくてもXMLをデータとしてDBに格納することができます。このスキーマレスという性質は、XMLDBの最も大きな特徴です。スキーマ構造変更時にかかる変更コストRDBの場合、データ構造に大きな追加・変更が入った場合、システム全体に大きなインパクトを与えます。最悪の場合、テーブルの正規化をやり直したり、つぎはぎだらけのテーブル追加で対応せざるを得ない状況も考えられ、そのような場合、変更コストはとても大きくなります。それに対し、XMLDBは、データ構造に変更が入ってもDBの変更は必要ないので、変更にかかるコストを低くおさえることができます。スキーマを設計/定義し、データの妥当性を検証することもできます。大量のデータを高速で一括処理するようなバッチ処理は、RDBが最も得意とするところです。XMLDBは、格納するデータがXMLであり、階層構造であることから、大量のデータを一括で処理するのは、もともと得意ではありません。XMLDB各製品も、複数のXMLドキュメントを束ねて処理できる機能などを開発してきており、これからの動向が注目されるところです。前節で、RDBとXMLDBを比較しましたが、RDBは固定的、XMLDBは柔軟といったイメージが沸いてきたかと思います。そのXMLDBの特徴は、実際にどのような局面で活用されているのでしょうか。以下の表にXMLDBの活用局面をまとめました。見出し、文書構造レベルでの検索、新旧対照表の自動生成などが可能となった。複雑な階層構造を持つ図面データの効率的なデータ管理が実現した。商品属性項目の追加が容易になり、カタログ情報の頻繁な更新が実現した。本稿冒頭で、XMLの普及時に、XMLデータを格納する手法としてファイルシステム上に直接保存する方法に問題点があることについて簡単に触れました。ここでは、具体的にその問題点について説明します。ファイルシステム上に直接保存する手法の問題点の大きなものとして、トランザクション機能がない、大量データに向かないなど、ファイルシステムがもともと持っているさまざまな制約があるということです。これらを克服するためには、さまざまな仕組みを作りこむ必要があり、結局割高になってしまいます。以下の表に、問題点をまとめました。一度ファイルの上書きを始めた後、元に戻せない。戻すためには仕組みを作りこむ必要がある。キャッシュ機能がないため、アクセスのたびにディスクから読み込む必要があり、ディスクの入出力負荷が増大する。OSによって、1フォルダ(ディレクトリ)に格納できるファイル数に制限がある。制限を越えていなくても、大量のファイルを扱うと読込みスピードが遅くなるこれらの問題はすべてXMLDBを導入することによって、解決できる可能性があるものです。以上、XMLDBの概要について理解できてきたところで、実際のXMLDB製品にどのようなものがあるのかを見ていきます。XMLDBにも、さまざまな製品が存在します。その分類は、ネイティブXMLDB(XML専用データベース)と、XML対応RDB(RDBにXMLを扱える機能を追加したデータベース)の2つに大きく分類することができます。「第一世代」の特徴としては、スキーマを必要とする、インデックスの設定が必要などの特徴があります。「第二世代」の特徴としては、スキーマレス、インデックスフリー、検索性能の大幅な向上などがあげられます。具体的な製品について、XMLDBの分類別に以下の表にまとめました。Luxeonを紹介します。Luxeonは、サイバーテック社が開発・販売するネイティブXMLデータベースです。eXelonというXMLDBで、その登場は1999年3月とネイティブXMLDBの中でも最も歴史が古く、導入実績も豊富です。その登場時期から、第一世代のXMLDBに分類されることもありますが、2006年12月25日にはバージョン2.0の出荷が開始され、大幅な検索性能の向上が図られるなど、第二世代への仲間入りを果たしたといってもよいでしょう。日本語の高速な全文検索機能(ターボサーチ)やあいまい検索機能の開発などにも意欲的に取り組み、今後ますます飛躍が期待される製品です。仮想ドキュメントについての説明を修正。