本文へジャンプ

DB2 9 pureXMLTMが“pure”(純粋)と呼ばれるワケがわかる!pureXMLは、他社提供の擬似XML DBとは全く異なります。pureXMLをわかりやすく解説します。

XMLデータの保管のしくみはどうなっているの?

  1. ヒデノブ :

    DB2 9ではpureXMLが出てきたから、XMLのデータをそのまま保管できるんだよ。

  2. さくら :

    あら、DB2 V8でも、XML ExtenderでXMLデータをDB2に保管できたじゃない。

  3. ヒデノブ :

    いや、pureXMLとXML Extenderでは、データの保管のしくみが違うんだ。

  4. さくら :

    え、何がどう違うの?

  5. ヒデノブ :

    うーん、ええと。。。

  6. DB2マスク :

    はい、お答えしましょう。


DB2 V7.1以降提供されているXML Extenderにおいては、データをリレーショナルDBの中に保管するのでしたね。これには、2つの方法があります。

1つめは、XML文書を新規の列データ・タイプとしてそのままの形で保管する方法(CLOBまたはVARCHRでのXMLデータ保管)、2つめは、XML文書を分解し、複数の表の列の中にそのコンポーネント・パーツを保管する方法(ShreddingによるXMLデータ保管)です。

いずれの場合でも、検索の便宜のためにXML 文書のエレメントおよび属性の索引を定義しておきます。

CLOB/VARCHARでXMLデータ保管
図1:テキスト形式でのまるごと保管(CLOB/VARCHAR)

ShreddingによるXMLデータ保管
図2:表データ形式にマッピング(Shredding)

注:CLOB (Character Large OBject): 大きいサイズの文字列のためのデータ型。
VARCHAR: 可変文字列のためのデータ型。
Shredding: シュレッディング。文書を細かく分割して保管する方法。

この方式は、現在もOracle DatabaseなどがXMLデータを保管するために採用している方法で、RDBにおけるXMLデータの保管(擬似XML DB)と呼べるでしょう。

  1. さくら :

    あ、そうか。従来からDB2がXML Extenderで提供していたXMLデータ保管のしくみと、現在も他社が提供しているXMLデータ保管のしくみは同じってことなんですね。なるほどー。
    ということは、pureXMLは業界でピカピカに新しいものっていうことなんですね?わぉ~!ではDB2マスク、pureXMLについて説明お願いします。

  2. DB2マスク :

    ピカピカね!若者は勢いがよくていいねぇ。
    そのとおりです。pureXMLの"pure"っていうのは、上述の「テキスト形式でまるごと保管」でも「表データ形式にマッピング」でもなく、XMLのよさをそのまま純粋に活かした方法で格納して活用できるということなんです。
    でもpureXMLはどうかという前に、世の中にはXML専用のDBがありますので、XML専用DBでのデータ保管についてお話させてくださいね。
    XML専用DBは、データベースの構造自体がRDBとは全く異なる、XML文書を処理するのに適した保管方法をとっています。
    下記のようにXML文書はドキュメントツリーとして表現できますが、これをツリー構造のまま効率的にデータベースに格納します。

XML形式のままXMLデータ保管
図3:XMLDBは、XML文書をツリー構造として保管

  1. さくら :

    へえ。全然違うんですね。

  2. ヒデノブ :

    そうなんだよ。DB2 9は、RDBとしてだけでなく、XML専用DBが使っている方式でもXMLデータを保管できるんだ。

  3. さくら :

    ふうん。でもXML専用DBが使っている使い方でXMLデータを保管できるっていうけど、何がいいの?

  4. ヒデノブ :

    えっと、それはね。。。(汗)

  5. DB2マスク :

    ははは。今度も私の出番のようですね。

pureXMLは、RDBにおけるXMLデータ保管と、XML専用DBのいいとこ取り!

DB2マスク : わかりやすくするために、それぞれの長所、短所を表にしてみましょう。

 

長所

短所

RDBにおけるXMLデータ保管 (擬似XML DB)

テキスト形式でまるごと保管(CLOB/VARCHAR)の場合

表データ形式にマッピング(Shredding)の場合

XML専用DBにおけるXMLデータ保管

  1. さくら :

    なんだか、それぞれに長所と短所があるのね。

  2. DB2マスク :

    そうですよ、さくらさん。ひらめきましたか? 両方の短所を克服していいところをとってデータを活用するべく、DB2 9で新登場したのが、pureXMLなのです。

  3. さくら :

    ということは、pureXMLは柔軟性を保ったまま、パフォーマンス、運用管理などにも優れてるってこと?すごい!!!いいとこ取りのpureXMLなんですね!

  4. ヒデノブ :

    さすが、さくらさんは理解が速いな。それでは、DB2マスクにもっとpureXMLのことを教えてもらおうよ!

  5. さくら :

    あいかわらず、調子がいいのね。

  6. DB2マスク :

    はいはい、説明しましょう。

ハイブリッドのpureXMLで、アクセスも管理もシンプルに!

  1. DB2マスク :

    RDBでは、一度設計したテーブルの定義を後から変更することは、非常に多くのコストがかかる作業になるので、開発者やデータベース管理者は変更を嫌がります。一方で、たとえば、電話番号を1つ入力する構造にしていたが後から2つめも入力できるように追加したいとか、あるいは取り扱い商品のサイズや色やその他の属性などを追加や変更したい場合などは、XMLデータだと柔軟に追加・変更することができます。

    これをpureXMLではXMLデータの形式で格納し、大量データでも高速に検索できるようにしています。

    さらに、もっとも優れた点は、RDBと同居することでシングルアクセスでリレーショナル・データにもXMLデータにもアクセスできる、ハイブリッドの構造だということです。

ハイブリッドDBを実現するDB2 9のpureXML
図4

pureXMLはすでにお客様に実際にお使いいただいており、上のチャートは、医療システムにおいてリレーショナル・データとXMLデータをそれぞれ、データ特性にふさわしい形式で格納している例です。定型データをリレーショナル列へ、まばらで変更の多い属性データをXML列へ格納し、効率的なDB構築に成功しています。

  1. ヒデノブ :

    なるほど、ハイブリッドって、こうやってRDBとXMLデータ両方をうまく使いこなすってことなんですね。

みんながうれしいpureXML

  1. さくら :

    ところで開発のことなんだけど、RDBってSQL言語で書くでしょう?XMLだとどうなるの?

  2. ヒデノブ :

    さくらさん、いいポイントついてきたね。XMLはXQueryで書くんだけど、なんと、DB2 pureXMLでは、RDBデータへのアクセスもXMLデータへのアクセスも、SQLでもXQueryでもどちらでも開発ができるんだよ。だから、今までのスキルを活用してハイブリッドなDB2の構築ができるんだ。

  3. DB2マスク :

    ヒデノブくん、さすがですね。そのとおりです。さらに、pureXMLの開発におけるメリットとしてはXMLの柔軟性を損なうことなく、設計変更に対応できるので、開発コストを抑えられるメリットもあるんですよ。

  4. さくら :

    なるほどー。あと、RDBの誇る高パフォーマンスや信頼性も、同様にサポートされるんですよね?

  5. ヒデノブ :

    まかせてよ!バックアップ・リカバリーなどの運用管理機能も、セルフ・チューニング・メモリー管理などのオートノミック機能も、高可用性、セキュリティーも、それに、パフォーマンスもバッチリだから、管理者も安心して使用できるんだ。

  6. DB2マスク :

    そのとおりです。そして最も重要なことは、ハイブリッドで必要な情報を高速にタイムリーに入手できること、定型データも非定型データもシングルアクセスで、検索や分析を効率的に行えることです。これによって業務効率もあがるだけでなく、ビジネスチャンスも拡がることがイメージできましたか?

  7. さくら :

    そうか、pureXMLって、開発者も管理者もそしてユーザーも、みんながうれしい新機能っていうことですね。

  8. DB2マスク :

    そうです、みんながうれしいpureXML!まとめてみたので復習してくださいね。

まとめ

開発者にとってのメリット

管理者にとってのメリット

お客様のビジネスを効率的に低コストで拡張

DB2 9 pureXML 機能の発注

DB2 pureXMLの機能を使用するためには、DB2 9に合わせて、Editionと課金単位ごとに提供されているDB2 pureXML Featureを発注してください。

なお、無償でダウンロードにより提供されているDB2 Express-Cには、pureXMLの機能が含まれています。詳細情報およびダウンロードのリンクはこちらから。