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

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

3.XML DBの真の実力とは? パフォーマンスを検証する

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

白井:一部の製品ですがRDBのXML拡張も機能的には、XML DBにようやく追い付いた、という意味で進化しています。ただ、パフォーマンス面については、XML DBとまだ開きがあるというのが実感です。

ある商用のRDBにXMLデータを格納した場合で、スキーマレスデータを格納してパフォーマンスの検証を行いました。すると、スキーマレスデータのXMLタイプの中に格納したキーで探すと実用的なレベルで応答が帰ってこない場合がありました。当然製品によって結果は異なりますが、スキーマレスデータに関しては、XML DBと比べて数十倍、場合によっては数百倍もの検索パフォーマンスに差が出た製品もあります。

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

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

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

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

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

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

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

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

木村:XML活用の場面は、文書/文書管理としてのXMLや、用途(アプリケーション)に依存しないインターフェースとしてのXMLなどいろいろありますが、現在私は、「これまでデータ化することが困難であった情報のデータ化」を実現するためにXMLを活用しています。

即ち、形が一意に定義できず、構造が変化し続ける情報。私が担当している製造業においては、製品仕様情報などがそれに相当します。製品カテゴリ毎に異なる仕様項目、新製品が出る都度変化する管理項目は、従来の2次元の表形式では一元管理(データベース化)することが困難です。このような情報をデータベース化することができれば、これまで手作業で行っていた業務をシステム化することも可能になると考えています。

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

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

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

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

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

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

XMLデータベース利用時に注意すべきポイント

  • Point 1:
    DB単体ではなくシステムとしての使い分け・要件により併用も
  • Point 2:
    XMLならではの設計方法の理解
  • Point 3:
    既成概念・既存スタイルの打破

御相談、ご質問はこちら

サービスご案内資料や、特別資料「マニュアル作成の効率化とコストダウンを実現するポイントとは? 」がダウンロードできます。

最新事例の公開情報や、イベント・セミナー情報をお届けします。

pagetop ボタン
サイバーテックお知らせ画像
©2003 CyberTech corporation ltd. All Rights Reserved.