SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

DB2 Webセミナー(AD)

XML本来の優位性をRDBで活用できるDB2 pureXML

第2回

数年前には、XMLはIT業界注目のキーワードだった。しかし、ここ最近はあまり耳にしない。とはいえ、XMLが消えてなくなったわけではない。むしろXMLはほとんどのシステムで、何らかの形で活用されつつある。

XMLは主役から名脇役に

 数年前には、XMLはIT業界注目のキーワードだった。しかし、ここ最近はあまり耳にしない。とはいえ、XMLが消えてなくなったわけではない。むしろXMLはほとんどのシステムで、何らかの形で活用されつつある。複数のシステムがあれば、その連携にはXML形式でデータのやりとりがなされ、さらに業界ごとにXMLの国際標準化も進みつつある。

 アプリケーション開発においても、エラーログなどを単なるテキスト形式で出力するのではなく、XML形式で出力することも増えてきた。XMLデータにしておけば、後からそれを様々な形式に変更し表示したり、別のシステムに取り込んだりという作業が極めて容易になるのだ。いまやXMLは主役ではないが、名脇役としてあちこちで活躍している。

XMLをデータベースで効率よく扱うには

 ところで、リレーショナルデータベースで大量なXML形式のデータを扱うには、大きく2つの方法がある。1つは、XMLデータを丸ごとCLOB(Character Large Objects)カラムに格納する方法だ。この方法では、そのままデータを挿入するだけなので、データ格納時に何ら手間がかからず高速に処理できる。そのため、XML形式データを単純に蓄積する用途には向いている。

 ただし、特定の値を検索し取り出すには、XML構造をいちいち解析しなければならず、速度はそのぶん遅くなる。さらに、格納されているXMLデータの一部を更新する用途にも、まったく向いていない。 もう1つの方法が、XMLデータを分解しリレーショナルデータのテーブルに展開し格納する方法だ。

 この方法なら格納された後は、通常のリレーショナルデータベースのデータとまったく同じなので、自由に検索もできデータ更新も容易だ。とはいえ、格納時にはその都度XMLデータをリレーショナル形式に展開する手間が増え、そのぶん余計に時間がかかることになる。

 さらに、この展開する方法ではXMLの優位性である柔軟性を大きく損なうことになる。XMLは、タグとそれに囲まれた値という極めてシンプルな構造だ。タグを増やせば簡単に項目を増やせるし、タグの中にさらにタグを記述するといったように階層的なデータ構造も容易に表現できる。このシンプルさでデータ構造の変化にも柔軟に対応できるのが、XMLの最大の特長と言っても過言ではない(図1、2)。

  たとえば、価格比較サイトのようなシステムでデータを扱う場合、決まりきった商品だけを扱うのであれば、リレーショナルデータベースのテーブルにデータを格納しても問題ない。インデックスなどを用いれば、検索も高速に行えるだろう。とはいえ、実際の価格比較サイトでは、頻繁に新しいタイプの商品が追加されるはずだ。商品が追加されれば、カテゴリ追加もありスペックなどを表現するデータ項目も増やすことになる。

 これをリレーショナルデータベースで構築していたのでは、商品種類が増えるたびにテーブル構造を変更しなければならない。テーブル構造変更も大きな手間だが、さらに、それにアクセスするプログラムにも手を入れる必要もあるかもしれない。これでは、手間とコストが大きくかかり、柔軟で使いやすい価格比較サイトをスピーディーに実現するのは極めて難しい。

図1:リレーショナル表による疎な属性の実装例
図2:XMLによる疎な属性の表現

次のページ
リレーショナルとXMLをネイティブに扱えるDB2 pureXML

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
DB2 Webセミナー連載記事一覧

もっと読む

この記事の著者

谷川 耕一(タニカワ コウイチ)

EnterpriseZine/DB Online チーフキュレーターかつてAI、エキスパートシステムが流行っていたころに、開発エンジニアとしてIT業界に。その後UNIXの専門雑誌の編集者を経て、外資系ソフトウェアベンダーの製品マーケティング、広告、広報などの業務を経験。現在はフリーランスのITジャーナリスト...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/2289 2010/11/01 13:15

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング