XMLDB開発支援
HOME  >  XMLDB開発支援  >  Xpriori(NeoCore)紹介:XMLデータベースの概念を打ち壊す「Xpriori」

Xpriori(NeoCore)紹介:XMLデータベースの概念を打ち壊す「Xpriori」

そのイメージは"速い、カンタン、やわらかい!"

2004年8月6日 更新
(WEB+DB PRESS Vol.21のMessage from Vandorsにて掲載)
※この記事掲載については編集部に了承。

テキスト=山下 竜大 YAMASHITA Tatsuo

はじめに

三井物産と三井情報開発は2004年5月20日より,Linux版のXML(eXtensible Markup Language)データベース「Xpriori」(エクスプリオリ)の無償ダウンロードサービスを開始しました(Windows版の提供も2004年5月より開始)。Xprioriは,XMLデータベース(XML DB)の最新バージョン「NeoCoreXMS 3.0」の機能を一部制限し,利用ライセンスを非商用および個人利用に限定したものです。

無償のXML DB「Xpriori」

Xprioriは,商用版のXML DB製品であるNeoCoreXMSの最大の特長である「高速性,容易性,柔軟性」(速い,カンタン,やわらかい)を,より多くの開発者に実感してもらうことを目的に,NeoCoreXMSとほぼ同等の機能を無償で提供するものです。

Xprioriは,NeoCoreXMSの機能が一部制限されている以外,すべての機能が搭載されています。制限されているのはデータベースサイズの上限が約1Gバイトに制限されていることと,Xprioriをインストールしたコンピュータと同じIPアドレスからのみアクセスが許可されることだけですので,その特性を十分に体感できる仕様になっています。

現在,商用版のNeoCoreXMSは,印刷/出版,製造業,小売,金融,医療/医薬,通信キャリアなど,さまざまな業種で採用されており,国内ユーザ数は50社を超えています。今後さらにXML DB市場の普及拡大と開発者の育成を目的に,無償版のXprioriの提供に至っています。Xprioriは,新たに開設されるコミュニティサイト(https://www.xmldb.jp/)から無償でダウンロードが可能です。また,開発者が必要とするXprioriの有益な情報を同Webサイトで提供する計画です。

● 超高速から"やわらかい"XML DBへ

そもそもXMLとは,「XMLタグと呼ばれる記号によりデータの前後を囲むことで,データに"意味"を持たせる」および「データの関係をツリー構造で表現する」という,2つの特長を持つ自己記述型(Self-Describing)のマークアップ言語です。

現在,XMLが注目されている分野は,B2BやWebサービスに代表されるデータ交換フォーマット分野,および報告書や帳票類,顧客情報などの半構造データ分野の2つです。半構造データの分野において,企業が保有しているデータのうちデータベースで管理されているものは,10~20%程度と言われています。

残りの約80%は,データベース化する必要がないデータか,データベース化したくてもできないデータのどちらかです。この「データベース化したくてもできないデータ」である半構造データをいかに管理するかがXprioriの最も得意とする分野です。

Xprioriは,構造が一定ではないXMLデータの格納に最適な"やわらかい"データベースエンジンです。スキーマに依存することなくXMLデータを格納できるのが最大の特徴で,すべてのXMLタグに対し自動的にインデックスを生成します。スキーマに依存しないことで,従来のリレーショナルデータベース(RDB)のような煩雑なメンテナンス作業が不要になります。

最新バージョンでは,データベース領域に対するデータ占有率を監視し,あらかじめセットされた"定時"と"即時"の2つのタイミングで,サービスを停止することなくデータベース領域を拡張する「Auto Growth」機能やデータベースの再構築やインデックスを再構成することなくフラグメント領域の自動回復を行う「Auto Reclain」機能,ホットバックアップ機能などが搭載されています。

実例紹介~全米自動車事故データの登録と分析

それでは,実際にXprioriを使った例をご紹介します。米国でCVS形式で公開されている自動車事故データをXMLデータとして格納し,XDA2で分析するというシンプルなモデルです。

現在,米国では,全50州のうち36州が自動車事故データをCSV形式で公開しています。このデータは,保険会社や自動車メーカーなどが事故データを分析したり,新しい商品の開発やマーケティングなどに活用しているものです。CSVデータは州ごとに異なる法律に従って管理されているためにデータ項目が州によって異なるほか,州の法律の改変などにより常に変更が発生します。また,州によってポイントとなる項目が違うためにインデックスをどこにするかが一様ではありません。そのため,厳密にスキーマを定義してデータを管理しなければならないRDBでの管理には不向きなデータということができます。そこで,このCSVデータをXMLデータに変換し,Xprioriに格納することが最も効果的な解決方法となるのです。

このとき注意すべき点は,「同じ意味を持つ項目には,同じタグをつけたXML文書に変換する」ということだけです。これにより,追加/変更に柔軟に対応できるだけでなく,すべてのXMLタグにより串刺し検索を行うことが可能になります。

Xprioriでは,すべてのXMLタグがインデックス化されているので,どの項目をキーにしても高速な検索が可能です(図1)。

すべてのXMLタグがインデックス化される画面イメージ
図1:すべてのXMLタグがインデックス化される

また,絞込み検索においても検索スピードは,ほとんど変化しません(図2)。

高速検索や絞込検索のイメージ画像
図2:高速な検索や絞込検索をサポート

この高速な検索は,後述するDPPに基づくものです。さらに,すべてのタグをインデックス化しても,インデックス領域を含め最大で元データの2.5倍以内のリソース容量でデータベースを構築できます。

相反するXML DBとRDBの機能

XML DBは,XMLデータをそのままの形で管理できるデータベースであることは冒頭にも紹介したとおりです。現在では,RDBでもXMLデータを管理できますが,その場合には厳密なスキーマを定義する必要があり,XMLの特徴でもある柔軟性と拡張性が犠牲になってしまいます。

一方,XML DBの中にもB2BやWebサービスなどで有効なスキーマ依存型のXML DBと,Xprioriのようなスキーマ非依存型のXML DBがあるので,導入するシステムの形態により最適なものを採用することが必要です。

Xprioriでは,スキーマに依存することなく,XMLデータをそのままの形で蓄積し,そのままの形で利用できる特徴により,XMLの柔軟性と拡張性を最大限に引き出すことが可能です。動的に変化する要求や要件に対し半定形のデータ処理を行う場合にはXprioriが有効で,RDBは表形式の構造化されたデータを固定的な要求や用件に利用する処理を得意とします。

つまり,RDBは"固いデータを高速に扱うデータベース"であり,Xprioriは"やわらかいデータを高速に扱うためのデータベース"と言えるでしょう。これまで,XML DBの"やわらかさ"と"速さ"はトレードオフの関係にあったために,XML DBは"重い"というイメージがありました.これのイメージを払拭したのがXprioriです。

特許取得の「DPP」がXprioriの中核

この「速い,やわらかい」を実現するのが,Xprioriに搭載されている特許取得の独自技術である「DPP」(Digital Pattern Processing)です。DPPは,インデックス領域を検索することなく検索データを高速に引き出すことを目的に開発された技術です。DPPではエレメントごとにユニークな形状のアイコンを生成するほか,検索式(Query)を同様のアルゴリズムでアイコン化します。この2つのアイコンを数学的にパターンマッチングすることで,高速な検索を可能にします。さらに,データ量やデータ構造に依存することなく高速に稼動できるほか,エレメントレベルまで自動的にフルインデックスを作成します。DPPはスキーマ定義を必要とせず,XML形式のデータであればすべて柔軟に対応できます。

また,「カンタン」を実現するのが「XRAD」(eXtreme Rapid Application Development)および「XDA2」(XML Data Aggregation & Analysis)です。XRADは,Xprioriで採用されている新しい開発手法です。データ構造が内部に規定されているというXMLの特性を最大限に活用することで,アプリケーション開発におけるデータベース定義を不要にし,アプリケーション開発中の出戻りによるシステム開発費の増大や開発期間の延長などの問題を解消します。

なぜ,このようなことが可能なのでしょう? それはXRADが,スキーマ定義が不要でアプリケーションによって作成されたXMLデータがそのままデータベース内に格納されることと,格納されたデータのすべてのタグにインデックスが作成されるという,Xprioriの特長を有効に活用できる開発手法だからです。

現在,システム開発において,データベース設計や変更に関わる作業は,全体の30~70%と言われています。XRADではその作業が不要になるため,システムの開発/運用におけるコストを30~70%削減します。

一方,XDA2はXprioriで統合されたデータを縦横無尽に分析するためのデータ活用法です。従来,RDBのデータなど他のフォーマットデータをXMLで統合するには,XMLの構造設計という作業が必要でした。XDA2ではXMLタグが文法どおりに定義されていれば,たとえフラットなXMLであってもそのまま格納できます。統合されたデータはすべてのタグでインデックスされるので,すべてのキーワードで,あらゆる角度から,高速かつ容易にデータ分析が可能です。

スキーマの更新なしにアプリを変更

それでは,XRADを使用したアプリケーションの例について紹介してみましょう.XRADはXprioriに最適な開発手法であり,XML形式のデータを生成できる開発ツールであれば,どのような開発ツールでも利用可能です。

ここではMicrosoft Office Systemに含まれる新製品「InfoPath」で作成した簡単なアプリケーションにより,Xprioriのスキーマに依存しないデータ変更の特長を紹介します。InfoPathは,チームや組織がXMLに対応したダイナミックなフォームを作成して必要な情報を効率的に収集できるプログラムです。

たとえば,図3のような「名前」「電話番号」「会社名」を登録するアプリケーションをInfoPathで作成し,Xprioriにデータを格納します。Xprioriでは,すべての通信をHTTPで行います。管理ツールもすべてHTMLで作成されており,Webブラウザがあれば,いつでも,どこからでもデータベース管理が可能になります。

InfoPathで作成したアプリケーション画像
図3:InfoPathで作成したアプリケーション

次に,図3のアプリケーションに「携帯電話」という項目を追加する場合を考えてみましょう。図4のようにInfoPathでアプリケーションを変更し,項目を追加したフォームからデータを入力します。

InfoPathで「携帯電話」項目を追加する画面
図4:InfoPathで「携帯電話」項目を追加

Xprioriの管理画面で登録されたデータを確認すると,新しく登録されたデータにだけ,次の一行が登録されていることがわかります(図5)。

新しく登録したデータだけに「携帯電話」のデータが追加された画面
図5:新しく登録したデータだけに「携帯電話」のデータが追加される

ここでは,アプリケーションは変更しましたが,XML DBには手を加えていません。そこで,同じアプリケーションをRDBを使用して構築する場合を考えてください。RDBを使用したアプリケーションに項目を追加する場合には,RDBのスキーマを変更し,データベースを再構成しなければなりません。

Xprioriではスキーマに依存しないために,アプリケーションの変更だけで,データベースの定義をまったく変更することなくデータベースに新しい項目が追加できるのです。Xprioriは,データの変更が頻繁に発生するアプリケーションにおいて最も有効なデータベースと言えるのではないでしょうか。

製品概要/問い合わせ先

製品名 Xpriori(エクスプリオリ)
開発元 Xpriori.LLC.(米国)
価格 無償
提供方法 xmldb.jpサイトからのダウンロード
動作環境 メモリ:256Mバイト以上
ハードディスク:100Mバイト以上
プロセッサ:Intel Pentium II 以上
対応OS:Windows 2000/XP/2003,Linux
対応API:Java,COM,C++,HTTP
問い合わせ先 株式会社サイバーテック
URL:https://www.cybertech.co.jp/
E-Mail:info@cybertech.co.jp

▲このページのTOPへ

  • XMLとは?IT初心者でもすぐわかるXML超入門
  • 無償で使える!XMLDB「NeoCore」
  • サイバーテック求人情報
  • メールマガジン申し込み
  • TEchScore

  • ▲NeoCoreについて記載されています!

  • ▲XMLマスター教則本です。試験対策はこれでばっちり!
Copyright (c) CyberTech corporation ltd. All ights Reserved. | サイバーテックについて | ご利用ガイド