XMLDB解説
HOME  >  XMLDB解説  >  ここまで来た!XMLデータベース選びのポイント指南

ここまで来た!XMLデータベース選びのポイント指南

 

 

XMLデータベースは何を基準に選ぶべきか

 

安くて性能の高いXMLデータベースはどの製品だろうか。多くのエンジニアが、自らの求める理想のXMLデータベースを探し求めている。XMLデータベースは製品数が少ないと思われがちだが、実はそうではない。XMLデータベースあるいはXMLが利用可能なデータベースという条件で探せば、その数は軽く数十種類に達するのである。その中には、誰もが知っている大手ブランドのRDBもあれば、誰も名前を知らないようなマイナーなブランドもある。オープンソースのソフトもある。つまり、候補の数は極めて多いのだ。それにもかかわらず、理想の製品を求めてさすらい続けるエンジニアは減らない。

 

どうしてユーザーのニーズと製品とのギャップが生じてしまうのだろうか? その理由として、XMLデータベースというジャンルが、非常に多様なソフトを包含していると考えられるだろう。XMLデータベースは、単にXMLデータベースであればよいというものではなく、「私が求めるXMLデータベース」でなければならないのである。

 

本記事では、XMLデータベースを求めるというのはどういうことなのか。そして、何を基準にXMLデータベースを選択すべきか。この2つのテーマを掘り下げてみたい。

 

 

そもそも、データベースにはどんな種類があるのか

 

まず、なぜXMLデータベースを求めるのかという原点を確認するために、データベースをいくつかに分類してみよう。XMLデータベースは絶対に使わねばならないものではなく、よりニーズに適したほかの技術があれば、それを使う方が賢い選択といえるだろう。それにもかかわらずXMLデータベースを使うとすれば、その理由を明確に意識する必要がある。それによって、XMLデータベース製品の選択のポイントが変わるからである。

 

ではデータベースの分類を見てみよう。

 

 

RDB(リレーショナル・データベース)
非常に多くの実績がある現在の定番である。性能、耐障害性、可用性など、おそらくはこれがトップクラスの水準にあるといってよいだろう。基本的に、データベースを設計するには正規化という手順が必須となる。いい加減に既存のデータを格納することはできず、格納を意図するあらゆるデータを分析して、事前にきちんと正規化を行わねばならない。もし、事前に想定しなかったデータを格納する場合には、正規化のやり直しが必要とされ、大きな手間が発生する可能性がある。

 

 

テキスト(テキストデータの処理)
テキストファイルとしてデータを記述し、それをawk、Perl、XSLT(XML)などを用いて処理する方法も、昔から根強いファンを持つ。RDBと違って、事前にきっちり設計を行う必要はなく、イレギュラーな情報を含むデータも容易に処理できる。しかし、処理速度は遅く、大量の情報を処理するには向かない。

 

 

全文検索(全検索によるデータ活用)
Googleのデスクトップ検索など、既存のワープロ文書や電子メールなどに対してインデックスを作成し、これを高速に検索するソフトが出現しつつある。これも広義のデータベースの一種と考えてよいだろう。この方法は、事前の設計も不要であるし、膨大なデータの集積から非常に素早く意図した文字列を検索することができ、非常にパワフルである。しかし、データが本来持つ構造を意識した検索は難しい。

 

 

XMLデータベース
XMLデータベースは、XMLデータを格納するデータベースである。とはいえ、すべてのXMLデータベースに共通する条件はおそらくそれだけで、そこから先は千差万別となる。例えば、設計する段階でデータ構造をすべて決めておかねばデータベースを作成できないもの、あるいは作成できても性能が上がらないもの、事前の設計という作業そのものが存在しないものなど、さまざまである。

 

 

中でも現在ホットな製品は、スキーマや事前の設計を一切不要とする"スキーマレス"XMLデータベースだろう。これは、不定型のデータを扱え、取りあえずどのようなデータでも格納できる手軽さを持っている。一貫した設計が不要なので、既存の複数のデータベースをまとめた統合データベースを作ることもできる。

 

 

長所も多いが弱点もある。XMLデータベースの最大の弱点は、やはり歴史が浅いことだ。しかし、これはおいおい解消されていくことだろう。

 

 

XMLデータベースの2つの世代

 

XMLデータベースは、便宜上2つの世代に分けると分かりやすい。

 

第1世代は、1998年ごろのXMLブームから登場したXMLデータベース製品である。XMLデータを格納するデータベースとして開発され、スキーマやインデックスの設定を要求するものも多い。また、完成度、性能、可用性などに欠ける製品もあり、期待されつつも、あまり普及していない。

 

第2世代は、ユーザーニーズ主導で生み出されたXMLデータベースということができる。XMLデータベースに向けられるユーザーニーズとは「XMLデータを格納できるデータベースがあればうれしいな」というような生ぬるいものではない。RDBにうまく格納できなかったデータを格納するための切実な要求なのである。その結果として、RDBにうまく格納できない不定型のデータをあますところなく格納する"スキーマレス"という特徴に加え、データ量が増大してもそれを高速に検索する高いクエリ性能が要求されている。

 

この2つを対比すれば、第1世代のXMLデータベースは、一言で要約すれば「XMLのためのデータベース」、第2世代のXMLデータベースは「ユーザーニーズのためのデータベース」ということができるだろう。つまり、XMLデータベースは、第1世代から第2世代へ進化する過程で、実際のユーザーニーズに極めて近い立場に変化したということができるのである。

 

 

XMLデータベース選択のポイント

 

ここで、より具体的にXMLデータベースを選択するポイントについて考えてみよう。もちろん、それはユーザーニーズごとに千差万別なのだが、ここではよく出てくるポイントの中から、3つに絞って見てみる。

 

 

スキーマ
XMLデータベースは、スキーマの有無に関して、大まかに分類すると以下の3つの種類のソフトが存在する。

 

  • スキーマ必須
  • 性能を上げるためにはスキーマを使う
  • スキーマレス
  •  

     

    事前にデータ構造のすべてを決定できない不定型なデータを扱うというニーズの場合、データベース作成時にスキーマを用意できないことになる。つまり、スキーマレスのXMLデータベースを選択するしかない。しかし、スキーマレスのXMLデータベースは高価になったりするので、選択の悩みは大きい。

     

    価格
    価格の問題は非常に悩ましい。というのは、高い、安いという判断には多くの条件がつきまとい、ソフト単体の価格の大きさとは比例しないことも多いためだ。つまり、価格はさまざまなコストを加味して検討する必要がある。例えば、ハードのコスト、開発の容易さ、メンテナンスのコストなども含めて検討する必要がある。

     

    それにより、高価そうに見えてもトータルコストでは高くないケースもある。逆に、決して高価ではないソフトであっても、そのポテンシャルのごく一部しか使わないような用途では、過剰に高価に感じられる可能性もあり得る。

     

    それとは別に、現在のXMLデータベースは、少数の先進的なユーザーのために提供される製品という立場であるため、高価過ぎるという理由もありそうだ。これについては、利用者が増えれば価格の低下が起こると期待できるだろう。つまり、みんなで使えば安くなるということである。

     

    スケーラビリティ

    XMLデータベースに求められるのは、データ量の増加によっても劣化しない検索性能である。ここは第1世代と第2世代を分ける重要な性能なので、製品選択に当たっては慎重に検討すべき点になる。データベースは運用フェイズにおいてデータ量が増大していく宿命にある。運用時のデータ量を適切に見極め、個々のXMLデータベースがデータ量の増加にどこまで対応するかを判断する必要がある。

     

     

    XMLデータベースを使ったアプリケーション開発では、数10Gbytes程度のデータ量に収まるものが多いようだが、中には数100Gbytesに達するデータ量を扱う事例も出てきている。このようなケースでは、サーバ増設などのスケールアウトの容易さはどうか、という点も判断材料になるだろう。

     

     

    NeoCore XMS、Interstage Shunsaku Data Managerの紹介

     

    ここでは、XMLデータベース選びの具体例として、対照的な2つの製品を並べて比較してみることにしよう。

     

     

    NeoCore XMS
    第2世代XML DBを代表するソフトである。世代交代はここから始まった! といってもよい。利用実績も増えつつある。これがあればXMLデータベースが実用になるかも......と思わせてくれた意義深いソフトでもある。

     

    特徴としては、高度なインデックスを自動生成する機能(特許技術であるDigital Pattern Processing:DPP)を持っていて、パス検索がずば抜けて速いことだろう。スキーマを指定する必要もなければ、インデックスの生成を指定する必要もない。インデックス作成はすべて自動的に行われるので、使い勝手は非常によい。

    特に優れているのは、無料版「Xpriori」の提供により本格試用が容易に可能という点である。この無料版の利用者、あるいは話題も急速に増えつつある。これを体験した技術者がいることで、NeoCore XMSを扱う基本的なスキルを持った人材を得られる可能性が高まっていることも、1つのポイントといえるだろう。

     

     

    Interstage Shunsaku Data Manager

    ある意味で、遅れてきたXMLデータベースといえる存在である。製品のコンセプトはまさにスキーマレスのXMLデータベースなのだが、そのような明快な断言が遅れたために、XMLデータベースの世界から見えにくい存在であり続けたのが残念といえる。しかし、すでに実運用実績もあり、決して生まれたての新参ソフトというわけではない。

    Shunsaku(Interstage Shunsaku Data Manager)の特徴は、シンプルな構造にある。どのようなクエリもほぼ一定の時間で処理でき、クエリ時間が予測できる。つまり、単純なクエリも一定の時間を要する代わりに、複雑なクエリもほぼ同じ時間で処理が完了する。応答時間を重視する場合は好ましい特徴といえる。

     

    また、構造がシンプルなので、スケールアウトが容易である。そして、サーバ増設でリニアに性能が上がるという特徴がある。

     

    以上のように、この2つのソフトは対照的な性格を持つ。NeoCore XMSは優れたインデックスの自動生成でクエリ性能をアップさせた点が最大の特徴だ。さらにNeoCore XMSでは、全文検索エンジンやETLツールといった豊富なオプション製品も提供されている。やはり日本市場における実績が長い分だけ、ユーザーニーズを吸い上げてこなれた製品に仕上がっているという印象だ。一方、Shunsakuの方はインデックスを生成しないシンプルな構造なので、単純なパス検索の速度は他社製品に譲るが、どのようなクエリでも処理時間の差は出ない。そして、クエリ時間の予測が容易に可能となる。

     

     

    終わりに

     

     

    いままさに開花しようとしているXMLデータベースのブーム。そこには、玉石混淆、さまざまなXMLデータベースが名乗りを上げている。しかし、XMLデータベースのブームは、厳密にいえばXMLデータベースが流行っているというよりも、ユーザーニーズを満たすためにXMLデータベースが求められているブームである。必然的にニーズを満たすXMLデータベースとそうではないXMLデータベースの区別は行われねばならない。

     

     

    そこで問題になるのは、そもそもユーザーニーズはユーザーごとに異なるという事実である。つまり正解を示すことはできず、XMLデータベースの選定は、個々のユーザーごとに「自分のニーズ」に照らして実行されねばならない。ぜひとも、素晴らしいソフトを選び出し、それによって皆さんのニーズが満たされることを祈っている。

     

     

    セミナーレポート
    @IT ワンポイント・セミナー"ここまで来た! XMLデータベース選びのポイント指南"

    ユーザーのニーズに基づいて生まれてきた第2世代のXMLデータベースは、着実に採用実績を伸ばしている。しかしXMLデータベースの市場はまだまだ小さいため、どのような製品がどんな使われ方をしているか、あまり一般のエンジニアには知られていない。そこで@ITでは本記事の公開に先立ち、「@IT ワンポイント・セミナー」を2005年11月25日に開催し、本記事で取り上げたNeoCore XMSとShunsaku(Interstage Shunsaku Data Manager)の製品特性を紹介する機会を設けた。

     

     

     

     

     

    まず基調講演として、@IT Database Expertフォーラム「XMLデータベース開発方法論」の筆者、川俣 晶氏による「ここまで来た! XMLデータベース選びのポイント指南」が語られた。この内容は、本記事として紹介したものである。

    製品紹介のセッションではまず、NeoCore XMSの日本代理店である三井情報開発株式会社/Mitsui NeoCore Centerプロダクトマネージャー 渡辺卓也氏が「やわらかいデータベース NeoCore XMSとは」と題した講演を行った。

    NeoCore XMSを特徴付ける「Digital Pattern Processing」によって、完全一致検索ではデータ量やデータ構造に依存せず非常に高い検索性能を持つ仕組みが紹介された。また、データベースエンジン自体をシンプルな構造にとどめ、各種ソリューション対応には他社の全文検索エンジンやETLツールなどをオプションとして提供するといった販売戦略も披露された。導入事例では数10Gbytesほどのデータ量を扱うシステムが中心となっているそうだ。

     

     

     

     

    Mitsui NeoCore Center/三井情報開発株式会社
    プロダクトマネージャー 渡辺卓也氏

    続いて、富士通株式会社 ソフトウェア事業本部 ミドルウェアソリューション事業部 Shunsaku技術開発部 部長 長倉浩士氏による「Interstage Shunsaku Data Managerご紹介 ~あるがままに格納し、思いのままに検索する~」と題した講演が行われた。

    Shunsakuの最大の特徴は「インデックスを捨てた」ことによるメリットだという。基本的にはgrepと同様に全データを「ベタナメ」する方式であるが、「ハイトラフィック技術」を導入することで同時接続性能を向上させた非常にユニークなアーキテクチャである。導入実績では、複数のRDBを横串検索したいというニーズに応える「統合データベース」の構築例が紹介された。100Gbytesを超える巨大データベースでも、ハードウェアのスケールアウト増設で対応できる点が強調されていた。

    XMLデータベースはベンダごとにさまざまなアーキテクチャが採用されており、それぞれの製品に得意、不得意の分野がある。つまり、ユーザーのニーズによって最適なXMLデータベース製品は異なるのだ。今回のセミナーによって第2世代と呼ばれるNeoCore XMSとShunsakuを使い分けのポイントが明確になったといえるだろう。

     

     

    ▲このページのTOPへ

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

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

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