Viper 2で学ぶXMLデータベース最新事情
Viper 2で学ぶXMLデータベース最新事情(3)

“プロフ”サイトの構築だってXML DBでしょ


日本アイ・ビー・エム
中林 紀彦
2007/12/21
最新のXMLデータベース実装となるViper 2(DB2 9.5)のリリースを機に、全4回の連載記事であらためてXMLデータベースの利点を考えてみる。そこで見えてきたものとは?(編集部)

どのサービスよりも高機能で柔軟な“プロフ”サイト

 さて今回、Kさんのテーマは“プロフ”です。前回前々回で紹介したCGM(ユーザー生成メディア)サイトのヒットで多くのユーザーを得ることができたKさんの会社は、このサイトのマーケティング的な付加価値を向上させる目的で、登録ユーザーの属性を収集するプロフのサービスを開始することになりました。このサービス分野にはすでに大手(楽天、@nifty、ライブドアなど)が参入していますが、サービスの柔軟性と検索性を併せ持ったサービスがまだ存在しないことから、新規参入の価値があると判断されたのです。

 今回のKさんの役割は非常に重要です。“柔軟性と検索性”がこのサービスの付加価値の大半を占めるので、サービスの成功はKさん次第といっても過言ではありません。すぐにKさんは既存のサービスの内容を調査し、下記のように必要な機能を洗い出しました(執筆時時点で実際のサービスに基づいています)。

サービスA
  プロフィール項目
    ・定型のものはなく、ユーザーが作った質問に回答する形式
    ・回答も4択式で、自由な入力はできない
  検索機能
    ・ニックネーム、興味、質問、OR検索のみ
サービスB
  プロフィール項目
    ・定型(50項目以上)
    ・登録済みの項目の順序を並べ替えることが可能
  検索機能
    ・フリーワード検索
      -検索結果がHN、どの項目でヒットしたか分からない
      -AND検索のみ、OR検索はできない(なぜ?)
    ・性別、ジャンル、年代、都道府県、職業で絞り込みが可能
サービスC
  プロフィール項目
    ・定型(50項目以上)
    ・項目の順序を並べ替えることはできない
  検索機能
    ・プロフID検索
      -相手のIDを知らないと検索できない
    ・フリーワード検索
      -検索結果がHNのみで、どの項目でヒットしたか分からない
      -AND検索、OR検索も可能
サービスD
  プロフィール項目
    ・定型(50項目以上)
    ・項目の順序を並べ替えることが可能
  検索機能
    ・キーワードとジャンル、質問で検索
      -上位ワードのみを選択する形式で、検索キーワードは入力できない

 どのサービスも基本的な検索機能はあるのですが、ユーザーが利用する際に便利な機能がいまひとつ足りていないような気がします。

  • ヒットした項目名を表示できるものはない
  • 検索項目と項目の内容を指定できるものがない
  • プロフィール項目の並べ替えに対応できているものが少ない

 このような機能の不足を補えるサービスができれば、既存のサービスを提供するサイトにも負けないくらいの集客が可能だろうとKさんは考えました。

 今回はCGMサイトでの教訓(第1回第2回を参照)を生かして、またどのサービスよりも高機能で柔軟なサービスを目指すために、迷わずにXMLデータベースを選択しました。100以上の項目を持ち、項目の追加(削除)が頻繁に発生するため、第1回でもお話ししたようにリレーショナル・データベースでは限界があります(自由度とパフォーマンスはトレードオフになってしまう)。

 早速Kさんは、データベースの設計に取り掛かりました。XMLデータベースでは、MySQLのようなリレーショナル・データベースと比べると、テーブル設計は非常にシンプルになります。必要な列は、キーとなる整数列と実際のプロフィール項目が入るXML列の2列のみです。ここで設計上の注意点としては、キー列となるものと同じ要素(今回は“HN”)をXML列でも持つようにしておくということです。


$ db2 create table profxmlatt(HN INTEGER NOT NULL PRIMARY KEY,
                              PROFXML XML)
$ db2 describe table profxmlatt

                 Data type                     Column
Column name      schema    Data type name      Length     Scale Nulls
---------------- --------- ------------------- ---------- ----- ------
HN               SYSIBM    INTEGER                      4     0 いいえ
PROFXML          SYSIBM    XML                          0     0 はい

  2 レコードが選択されました。
XMLデータベースのスキーマ設計

  1/4

 Index
連載:Viper 2で学ぶXMLデータベース最新事情(3)
 “プロフ”サイトの構築だってXML DBでしょ
Page 1
・どのサービスよりも高機能で柔軟な“プロフ”サイト
  Page 2
・プロフサービスの基本となる機能の実装
 1. XMLデータの登録
 2. 対象データの検索
 3. プロフィール項目の追加
  Page 3
 4. プロフィール項目の変更
 5. プロフィール項目の削除
 6. 複数のプロフィール項目を同時に変更
 7. プロフィール項目の順序を変更する
  Page 4
・「XQuery Update Facility」とは?
・XMLデータベースならではのひと味もふた味も違う機能


Viper 2で学ぶXMLデータベース最新事情



Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Database Expert 記事ランキング

本日月間