XMLデータベースはリレーショナルに取って代わるものではない
XMLデータベースには適正なサイズがあり、それを適正な用途で利用することで、市場で評価を得ているとのこと。
「ニーズは以前より高まっていて、市場はじわじわと拡大しています」と橋元氏。とはいえ、リレーショナル・データベースの市場が100あるとすれば、XMLデータベースの市場はせいぜい1程度。徐々に拡大しているからと言って、これがやがて80になるかというそういうことではない。
XMLデータベースは、2000年ころに一度ブームがあった。橋元氏が言うように、当時はリレーショナルを置き換えるのではという勢いがあったのだ。もちろん、そうはならなかった。むしろその後は、あまり目立たなかったかもしれない。当時は、純粋なXMLデータベースもあれば、XMLデータをリレーショナル・データベースで扱えるようになった時期でもある。IBM DB2では、リレーショナルでありながら、XMLデータを柔軟に扱えるのがいまも特長の1つになっている。
ブームが続かなかったのには、そもそもXMLデータベースがメインストリームではなかったのもあるが、当時のハードウェアでは十分な性能が得られなかったのも理由の1つ。リレーショナル・データベースのように、もともと少ないコンピュータリソースをいかに有効活用してたくさんのデータを効率的に処理するかを目指し開発されたものと異なり、XMLデータベースはXMLで記述されたそれなりに大きなサイズのデータを一度に処理しようとする。XMLデータのサイズが小さければよかったが、データサイズが大きくそれがたくさんあれば、昔は思うように動かなかった。
「当時のIAサーバーでは、搭載できるメモリー量も限られていて、十分な性能は出ませんでした。」(橋元氏)
XMLデータの処理は重たい。データを細かく分割し正規化して扱うリレーショナルに比べ、XMLデータベースでは、1つのデータ単位が大きくなる。イメージ的には、XMLデータファイルのままうずたかく積み上げたものを管理するのがXMLデータベースとのことだ。
正規化すると、フォーマットが固定化する。これに対しXMLデータベースには、データ構造がどんなものでも積み上げて処理でき、そこから高速にデータを取り出せる。これを実現するには、メモリ上に対象となるすべてのXMLデータを載せたい。そうしないと、ディスクIOが大量発生し性能が十分に発揮できない。なので、XMLデータベースは、どちらかと言えばスケールアウトではなくスケールアップで性能向上させるのが一般的だそうだ。ここ最近のサーバー性能向上、とくにメモリ空間の拡大は、XMLデータベースにとってはかなりの追い風なのだ。
XMLデータベースが活躍する3つの分野
橋元氏によれば、XMLデータベースは、おもに3つの領域で活躍している。それはXMLデータが、塊として存在しているところだ。
1つめが、マニュアルなどの大量の文書を扱う分野。製品マニュアルなどは、章などの単位で部品化ができ、それをもとにXML化する。マニュアルなどは一度作って終わりではなく、章なりの部品単位で変更や追加、削除が発生する。どこにどのような変更が入るかは、分からない。当然ながら変更される量も予測できない。このような情報は、まさにXMLデータベース向きなのだ。
製造業などでは、マニュアルの制作を印刷会社などに外注することが多い。そうすると、修正のたびに印刷会社に作業依頼することになり、小さな修正でもされなりのコストになる。これをXMLデータベース化し社内でハンドリングする。そうなれば、外注するのはマニュアルの制作ではなく、紙への印刷出力ということに。印刷会社に依存する必要はなくなり、相見積もりなどで安価な企業を選択し発注することも可能になる。コストは、大きく削減できるのだ。
また、蓄積したマニュアルデータは、印刷物だけに止まらずさまざまなアウトプットが可能になる。ワンソース・マルチユース、紙のマニュアル、Webページ、いまならスマートフォン用など、さまざまな用途にも加工は容易だ。そうなれば、データの有効活用で利便性が向上し、結果コスト削減も期待できる。「製造業では、紙では難しい技術継承のような用途でも、XMLデータベースを活用したい要望が出てきています」とのことだ。
2つ目の領域は、メタデータの管理。これは、まさに世の中のデジタル化が進んだために生まれたニーズでもある。たとえば、写真などの画像や動画などが、現在は大量に生み出されている。これらを有効活用するには、たとえばその写真に何が写っているのかという「写真のメタ情報」が整備されている必要がある。いつどこで誰が撮影したのか、その写真には何が写っているのか、権利関係はどうなっているのかなど、写真1つにもさまざまなメタデータがある。このメタデータも、情報としては固定的なものではない。
大量に画像や動画データを保持していても、メタデータがなければ欲しい映像なりを取り出すのは至難の業だ。探せないのであれば「どこかに映像があるのは分かっていても、撮り直したほうが早いし安い」という状況もある。XMLデータベースで映像のメタデータを管理できれば、瞬時に目的の映像を見つけ出すことができるだろう。これが実現できれば無駄な撮影作業も減り、コスト削減となる。写真や動画を扱うメディア系企業や医療分野、製造業での図面管理などで、XMLデータベースによるメタデータの管理に興味がもたれている。
3つ目が、XMLによる標準化されたデータを取り扱う分野。最近ではあまり大きく取り上げられなくなっているが、業界標準や国際規格など、さまざまな情報がいまXMLで標準化されている。それがが当たり前になったから、ことさら取り上げられなくなったとも言える。このXMLで標準化された情報を扱うのは、「リレーショナルではしんどいところです」と橋元氏は言う。
リレーショナルデータベースのXML対応機能では、1レコードにXMLデータのファイルを格納し処理するのが普通だ。入れるファイルのサイズが小さければそれなりに処理できるが、サイズが大きくなれば処理は極端に遅くなることがある。また、版管理などを行う場合にも、XMLデータベースであればほぼ自動的にそれを実現でき、XMLデータベースで扱うほうがメリットは多いのだ。
データベースは適材適所で
XMLデータベースを扱うのに必要なスキルを訊ねると、XMLに対する基本的な知識は必要とのこと。逆にそれさえあれば、「あとの技術はどうとでもなるでしょう。XPath(XML Path Language)やXQueryはちょっと特殊かもしれませんが、アプリケーションを普通に組める技術があれば、SQLを憶えるよりは簡単だと思います」と橋元氏は言う。
NeoCoreは、さらに技術者が早く、より簡単にXMLデータベースを活用した開発ができるよう進化している。そのために必要なAPIなどの整備に、注力している。そして、さらなるパフォーマンス向上にももちろん、取り組む。
「NeoCoreは、エンジニアが触ることの敷居を、ぐっと下げようとしています。開発効率を考えたならば、オープンソースのXMLツールよりも早く安くできる。そうなればコストの面でもNeoCoreを選んでもらえるはずです。商用なので、サポートの体制も安心してもらえる」(橋元氏)
NeoCoreがどのように進化しているかについては、2012年11月16日開催される「NeoCoreサミット 2012」というイベントでその詳細が紹介される。当日は、NeoCoreの話だけでなく、さまざまなデータベースを適材適所で利用するためのヒントも紹介されるとのこと。たとえばKey-Value型とXMLデータベースを、どのように使い分ければいいか、などについても解説される予定だ。
「本当に、データベースは適材適所だと思います」という、橋元氏の言葉が印象に残る。自分たちは何をしたいのか、そのためにどのデータベースを選べばいいのか。技術を選択する立場にある人は、XMLデータベースについてもきっちりと把握しておく必要がありそうだ。