DB2が「XMLDBかRDBか?」の迷いからユーザーを解放:DBMS導入事例:IBM DB2 9
ネットプライスは、商品レビューサイト「monopedia」でXML対応の「DB2 9」を採用。ビジネス要件が流動的なため、多様なデータ形式を受け入れるDBを必要としていた。ここでは、XMLDBの導入事例を紹介する。
新規事業の立ち上げにXMLDBを採用
XMLのデータをそのままのデータ構造で格納できるXMLデータベース(DB)は、スキーマに縛られにくい「柔らかいDB」として2000年ごろから注目されてきた。しかし、依然として非構造データを取り扱う文書管理システムなど、リレーショナルデータベース(RDB)が不得意とする一部の領域でしか普及していない。RDBの牙城が堅固なことに加え、XMLDB製品にも拡張性や機能の面で未成熟な部分があったからだ。
とはいえこの数年間で、XMLは標準的なデータ・文書形式としての地位を揺るぎないものにしつつある。「XMLDBかRDBか」といった単純な二者択一ではなく、もっと手軽にXMLの便利さをシステムに取り込めないものか。それを実践したのが、ネットプライスである。
ネットプライスは、インターネットを活用したコンシューマー向けの共同購入サービス、とりわけギャザリング分野(2007年9月の同分野の売上高は約120億円)では草分け的な存在だ。一方で、新規事業の開発も積極的に進めており、その成果として2006年末に「レビュー集約サイト」と銘打った「monopedia(モノペディア)」を立ち上げた。同サイトは、PCから生活雑貨に至るまで多様な商品レビューを提供しており、ユーザーからの直接投稿のみならず、提携サイトやブログからも情報提供を受けるCGM(Consumer Generated Media)サイトとなっている。
monopediaは、CGMサイトとしては珍しくバックエンドにXMLDBを本格的に採用している。システム構築を1人で担当したネットプライスの今井 剛氏は次のように話す。
「スモールスタートの新規事業ということもあり、当初はオープンソースソフトウェアのMySQLでプロトタイプの開発を進めていました。しかし、『もっとこうした方がレビューを書き込みやすいのではないか』といった意見が社内から多く寄せられ、システムの修正がひっきりなしに起こっていました。また、他サイトとの連携も考えていましたが、開発当時は漠然としたもので仕様は固まっていませんでした。そこで、結局はどのようなデータでも入れられるDBが必要との結論に達し、XMLを検討してみようということになりました」
monopediaのシステム開発は、2006年10月に始まり年末にはα版をカットオーバーするという強行軍だったことに加え、新事業だけにビジネス要件も流動的だった。つまり、ユーザーの反応やビジネスの展開に合わせてシステムを柔軟に対応させることが求められていた。仮にでもRDB形式でデータ構造やテーブルのスキーマを固めてしまうと、後に変更作業で苦労することは目に見えていたのだ。
真のハイブリッドを実現したDB2
ネットプライスが最終的にXMLDBの採用へ傾いたのには理由があった。同社は、従来各サービスのRDBMSにIBMの「DB2」を採用していたが、2006年の夏に“pureXML対応”をうたった最新版の「IBM DB2 9」が登場していたのだ。
XMLDB製品には、XML処理に特化した構造を持つネイティブ型と、DB2やOracle Databaseなど既存のRDBMS製品がXML処理にも対応したハイブリッド型がある。ハイブリッド型は通常、RDB構造の中で疑似的にXMLDBを扱うため、XMLデータを丸ごとテキストとしてRDBのCLOB型カラムに格納するか、XMLデータを分解してテーブル群にマッピングする方法が取られる。しかし、CLOB型カラムにデータ全体を格納すると検索性能が落ち、複雑なマッピング方式ではDBの柔軟性が損なわれる。
これに対しDB2 9は、XMLの特徴であるツリー構造のままXMLデータを格納する。つまり、1つのDBの中で完全にハイブリッドな形でRDBとXMLDBを共存させ、1つの管理システムで統合的に扱えるというメリットがある。もちろん、ノンスキーマのウェルフォームドXMLも扱える。
実際、XMLDBに触れるのが初めてだった今井氏も、無償版の「DB2 Express-C」で製品検証を始めると、即座に“使える”という感触を得たという。
「XMLデータへタグを追加するだけで、RDBでいうところのカラムに相当するデータ項目を継ぎ足せます。RDBのように逐一スキーマを変更しなくても、データ項目を横へ無限に増やせる感覚は新鮮でした」(今井氏)
データの種類によってRDBとXMLDBを使い分けられるハイブリッド型のメリットも魅力だった。既にExcelで整備していた商品カテゴリやECサイトなどの定型データはRDBとしてテーブル形式で、ジャンルによって属性情報が大きく異なる商品データやデータ項目が変化しやすい会員データなどはXML形式で格納する、といった具合である。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Copyright © ITmedia, Inc. All Rights Reserved.