--渋谷テクニカルナイトの講演では、従来のRDBに縛られたサービスの例をお話されていましたが、XMLデータベースを活用するとどういったサービスが提供できるのでしょうか?
中林氏: 今までのRDBですと、データベースのテーブルがきっちりと決まっていて、テーブルに新たな列というか属性を追加することが困難でした。例えば、テレビを購入したいと考えている人に、各製品の価格・性能を比較するようなサービスを提供するとします。テレビの種類として、プラズマテレビ、液晶テレビといったものがありますが、プラズマと液晶それぞれを別のデータベースで管理していた場合、両者を横断して比較することが難しく、あくまでもプラズマか液晶といったカテゴリ内での製品比較に留まってしまいます。たとえプラズマも液晶も比較できるようなデータベースにしていたとしても、有機ELテレビといった、新しく登場したカテゴリの製品にすぐに対応することは困難です。
こうした柔軟な属性追加に対応できるよう、XML情報の列を持たせているというのが「DB2 9」の特徴です。属性の追加に際し、属性ごとに列を追加するのではなく、XML列にさまざまな属性を持ったXMLを格納することで属性の追加に柔軟に耐えられるようになっています。XMLをそのまま格納するだけだと、エレメント名などが冗長になってしまいますので、それを整数に置き換えて圧縮して格納するなどの処理を行っています。イメージとしてはXMLの列を追加しているというものですが、XMLの情報については、XML専用のストレージに入り、RDBの列は今までどおりの扱い方をしています。
先日の講演では、先ほどのテレビの比較検討サービス以外にも、携帯電話サイトにおいて、ユーザーのマイメニューを自由に編集・設定できるといったものや、不動産の検索サービスにおいて、従来からの定型の属性以外に、「バルコニーが20㎡以上」といったユーザーごとに異なるこだわりで検索できるようなサービスへの対応についても説明しました。また最近では、健康診断のデータもXMLで持つようにすれば、「メタボ検診」といった新たな検診項目が増えた場合に対応できるといった話題もあります。RDBだけでは、このような変化の多い物や人の属性を管理することに限界があり、それを補うのがXMLデータベースのメリットと考えています。
--それでは、サービス提供側のメリットについておきかせください。
中林氏: これまでのアーキテクチャですと、まずデータベースのテーブル構造をきっちり決めないと、サービスの提供ができないといった問題があります。テーブルのスキームを決めてからでないと、アプリケーション、データベース、テーブルを構築していく流れに乗せることができません。特に、エンドユーザーの意見を汲み取って、素早くサービスを提供するといった柔軟性が求められるインターネットでのサービスを提供する場合などは、非常に苦労されるのはないかと思います。
企業のシステムは、減価償却を考えると4~5年のタイムスパンで計画されるケースが多く、要件を決めるときに5年後のビジネスプロセスがどうなっているかを予想する必要があります。しかし、RDBで要件定義をきっちりやって、数年のタイムスパンを見越したシステムを入れてしまうと、ビジネスプロセスが変わったときに要件の変更に耐え切れず、大規模な変更が入るケースが最近多くなっています。
XMLデータベースを活用すれば、DB管理者はスキームの変更に振り回されることがなくなります。例えば、「システムを変更するので、深夜にデータベースの内容を変える作業をやってください」といった負担が減ります。またアプリケーション開発者も、データベースの変更を待たずに構造変化に対応できます。最低限のルールを決めておくことで、WebデザイナーがWebページのフォームを書き換えるだけで対応できるといった仕組みの提供も可能になるからです。
また、データベースが柔軟になることで、これまでにないデータを保有できるというメリットもあります。格納する場所が限られているデータベースの場合、データを更新した場合に現時点でのデータしか参照できませんが、新たに「更新履歴」も扱えるような構造にもできます。例えば、お客様の履歴、移動履歴、お客様データの変更履歴をとっておいて、カスタマーサービスに利用する場合に、「いつ何を購入された」「結婚で姓が変わった」「引越して住所が変わった」などといった情報があることでさまざまなメリットを提供できると思います。データベースに新たに「時間」という軸が追加され、三次元的になったといってもよいでしょう。
このようなメリットから経営面では、ビジネスの俊敏性が増し、かつ強い競争力が持てるようになると考えております。
--導入事例として講演でも紹介されていた自動車製造業様のケースについてお聞かせください
中林氏: この事例は、Excelで管理している製品データのバックエンドのデータベースとして採用されたものです。導入前は、Excelだけで管理されていました。このデータは膨大で、横255列とエクセルの最大値まで使われており、これを各担当者に配布し、入力してもらいます。それぞれ入力担当が入力したデータが、集計担当者のもとに集められ、さらにExcelで集計を行っていました。
導入後のメリットとしては、まず集計工数の短縮が挙げられます。これまで数時間かかっていた処理をデータベース側で担当しますので、数分レベルにまで短縮できます。次に、運用負担が低いというメリットもあります。システムを導入したにも関わらず、入力担当者はこれまでどおりExcelを使用するため作業内容は変わりません。入力担当者はXMLを入力する必要はなく、Excelの内容がXMLに反映される仕組みとなっているからです。データベースが柔軟になっていますので、フロントエンドの自由度という意味で、Excelも一つの選択肢と言えます。そしてやはり、項目やレコードの追加などに柔軟に対応できるため、メンテナンス工数も削減されるという効果も期待できます。