XMLデータベース / XML DB 国内トップシェアカンパニー

XMLデータベース エンジニア特別対談 【エンジニアが本音で語る! XMLデータベース、その真の実力とは】 (2)

HOME  >  ピックアップ  >  XMLデータベース エンジニア特別対談 【エンジニアが本音で語る! XMLデータベース、その真の実力とは】 (2)

(3)XMLDBの真の実力とは? パフォーマンスを検証する


木村:白井さんにお伺いしたいのですが、現状RDBのXML拡張機能も進化する中で、機能面やパフォーマンス面でXMLDBとの差はどの程度接近しているのですか?


白井:一部の製品ですがRDBのXML拡張も機能的には、XMLDBにようやく追い付いた、という意味で進化しています。
ただ、パフォーマンス面については、XMLDBとまだ開きがあるというのが実感です。
ある商用のRDBにXMLデータを格納した場合で、スキーマレスデータを格納してパフォーマンスの検証を行いました。すると、スキーマレスデータのXMLタイプの中に格納したキーで探すと実用的なレベルで応答が帰ってこない場合がありました。
当然製品によって結果は異なりますが、スキーマレスデータに関しては、XMLDBと比べて数十倍、場合によっては数百倍もの検索パフォーマンスに差が出た製品もあります。



XMLDB/RDBパフォーマンス検証結果図3-1:XML検索速度比較

XMLDB/RDBパフォーマンス検証結果図3-2:XML追加書込み速度比較

XMLDB/RDBパフォーマンス検証結果図3-3:XMLデータサイズ比較

※画像をクリックすると拡大されます。


(※注)検証について

検証環境  
CPU: AMD Athlon 64 X2 Dual Core Processor
RAM: 2GB
OS: WindowsXP SP2
ファイル数: 約10万ファイル
XML総サイズ: 約4GB
検証方法: XMLDB(NeoCoreXMS)・RDB(商用製品)ともにJava言語によるプログラムを作成し、そこからDBに格納されたスキーマレスXMLデータ対してアクセスを行い処理にかかる時間を計測。


木村:この結果を見ると、XMLデータのロード以外は、スキーマレスデータの検索、UPDATE、MODIFYについていずれもXMLDBの数値が上回っていますね。
システム要件の中で、XMLを扱い、データベースに格納する事が求められる際に、このようにベンチマークを実際に行う事は、選定する際に非常に重要だと思います。
RDBは、カタログ上では機能的・パフォーマンス的にXMLDBと同等で、プラス可用性や安全性、実績といった面でのアピールをされているようですが、実際の業務で使うにはまだ実用的レベルに達していない場合がある、という事が分かりました。


白井:私自身も、SIを行っている立場上、RDBの、データベースサーバーとして成熟度・安定度は高く評価しています。
ただ、XMLを使う=スキーマレスデータという観点で見た場合、パフォーマンスを犠牲にすることなくその柔軟性を生かせるのはXMLDBなのではないかと思いました。
同時に、今後XMLDBに期待される事としてRDBと同等の安全性や可用性への対応、があるという事も分かりました。



(4)アプリケーション開発者の視点から見た「XMLDBの真の実力」

白井:話がパフォーマンスに集中してしまいましたが、アプリケーション開発者の視点から見てXMLDBを使う本当のメリットと、XMLDBの使い方についてお話頂けませんでしょうか。


木村:XML活用の場面は、文書/文書管理としてのXMLや、用途(アプリケーション)に依存しないインターフェースとしてのXMLなどいろいろありますが、現在私は、「これまでデータ化することが困難であった情報のデータ化」を実現するためにXMLを活用しています。即ち、形が一意に定義できず、構造が変化し続ける情報。私が担当している製造業においては、製品仕様情報などがそれに相当します。製品カテゴリ毎に異なる仕様項目、新製品が出る都度変化する管理項目は、従来の2次元の表形式では一元管理(データベース化)することが困難です。このような情報をデータベース化することができれば、これまで手作業で行っていた業務をシステム化することも可能になると考えています。


白井:XMLDBの使い方についてはいかがでしょうか。


木村:XMLDBの使い方については、設計・開発それぞれに留意している点があります。

まず、データベース設計においては、「RDB思考」から解放されることが必要です。私を含め、RDBでのシステム構築を経験してきたエンジニアは、XMLを扱う際にも、当初は、「マスタを作って、リレーションで関連付けて・・・」と、どうしてもRDB的に考えてしまいます。これは、XMLのパフォーマンスを悪化させる原因のひとつです。XMLにはXMLの扱い方があります。思い切ってRDB設計目的であるディスクの効率的利用を忘れて、1枚で表現するという、XMLの原則からスタートすることが重要だと思います。


白井:私もそう思います。


木村:次に、XMLの柔軟性を活かすアプリケーション開発が必要です。構造の変化を吸収するXMLDBを採用しても、「特定タグをパス指定し固定フィールドへ表示する」というアプリケーションでは、データ構造が変化した場合に、アプリケーションを改修しなければならない。これでは、XMLDBを採用した意味があまりありません。動的な画面生成など、アプリケーションも構造の変化を吸収できるよう工夫することが必要です。

そしてXMLDBを利用する際の課題は、これらのXMLDB設計やXMLを利用するアプリケーション開発手法について、実践的なセオリーが確立されていないことです。RDB設計における、データモデリングや正規化手順のような、設計・開発セオリーをサイバーテックさんはじめ、XMLの先駆者が開発し、公開していくことが、XMLDBの正確な理解や活用のためには重要だと思います。



XMLDB利用時に注意すべきポイント  図4:XMLデータベース利用時に注意すべきポイント
※画像をクリックすると拡大されます。


XMLDB_special対談:1ページ目へのリンク XMLDB_special対談:2ページ目へのリンク XMLDB_special対談:3ページ目へのリンク


Copyright (c) 2003-2010 CyberTech corporation ltd. All Rights Reserved.