Tab navigation
- XMLデータの保管のしくみはどうなっているの?
- pureXMLは、RDBにおけるXMLデータ保管と、XML専用DBのいいとこ取り!
- ハイブリッドのpureXMLで、アクセスも管理もシンプルに!
- みんながうれしいpureXML
- まとめ
- DB2 9 pureXML 機能の発注
上記リンクをクリックすると、ページ内の該当箇所に移動します
XMLデータの保管のしくみはどうなっているの?
-
ヒデノブ :
DB2 9ではpureXMLが出てきたから、XMLのデータをそのまま保管できるんだよ。
-
さくら :
あら、DB2 V8でも、XML ExtenderでXMLデータをDB2に保管できたじゃない。
-
ヒデノブ :
いや、pureXMLとXML Extenderでは、データの保管のしくみが違うんだ。
-
さくら :
え、何がどう違うの?
-
ヒデノブ :
うーん、ええと。。。
-
DB2マスク :
はい、お答えしましょう。
DB2 V7.1以降提供されているXML Extenderにおいては、データをリレーショナルDBの中に保管するのでしたね。これには、2つの方法があります。
1つめは、XML文書を新規の列データ・タイプとしてそのままの形で保管する方法(CLOBまたはVARCHRでのXMLデータ保管)、2つめは、XML文書を分解し、複数の表の列の中にそのコンポーネント・パーツを保管する方法(ShreddingによるXMLデータ保管)です。
いずれの場合でも、検索の便宜のためにXML 文書のエレメントおよび属性の索引を定義しておきます。
図1:テキスト形式でのまるごと保管(CLOB/VARCHAR)

図2:表データ形式にマッピング(Shredding)
注:CLOB (Character Large OBject): 大きいサイズの文字列のためのデータ型。
VARCHAR: 可変文字列のためのデータ型。
Shredding: シュレッディング。文書を細かく分割して保管する方法。
この方式は、現在もOracle DatabaseなどがXMLデータを保管するために採用している方法で、RDBにおけるXMLデータの保管(擬似XML DB)と呼べるでしょう。
-
さくら :
あ、そうか。従来からDB2がXML Extenderで提供していたXMLデータ保管のしくみと、現在も他社が提供しているXMLデータ保管のしくみは同じってことなんですね。なるほどー。
ということは、pureXMLは業界でピカピカに新しいものっていうことなんですね?わぉ~!ではDB2マスク、pureXMLについて説明お願いします。 -
DB2マスク :
ピカピカね!若者は勢いがよくていいねぇ。
そのとおりです。pureXMLの"pure"っていうのは、上述の「テキスト形式でまるごと保管」でも「表データ形式にマッピング」でもなく、XMLのよさをそのまま純粋に活かした方法で格納して活用できるということなんです。
でもpureXMLはどうかという前に、世の中にはXML専用のDBがありますので、XML専用DBでのデータ保管についてお話させてくださいね。
XML専用DBは、データベースの構造自体がRDBとは全く異なる、XML文書を処理するのに適した保管方法をとっています。
下記のようにXML文書はドキュメントツリーとして表現できますが、これをツリー構造のまま効率的にデータベースに格納します。

図3:XMLDBは、XML文書をツリー構造として保管
-
さくら :
へえ。全然違うんですね。
-
ヒデノブ :
そうなんだよ。DB2 9は、RDBとしてだけでなく、XML専用DBが使っている方式でもXMLデータを保管できるんだ。
-
さくら :
ふうん。でもXML専用DBが使っている使い方でXMLデータを保管できるっていうけど、何がいいの?
-
ヒデノブ :
えっと、それはね。。。(汗)
-
DB2マスク :
ははは。今度も私の出番のようですね。
長所
短所
RDBにおけるXMLデータ保管 (擬似XML DB)
- RDB内に保管するので、従来のRDBデータとXMLデータを両方扱える。
- RDBが提供する運用管理、可用性、スケーラビリティー、セキュリティー機能を享受できる。
テキスト形式でまるごと保管(CLOB/VARCHAR)の場合
- 全件検索となり、パフォーマンスに難点がある。
- アクセス対象によっては、高負荷の処理が必要となる。
表データ形式にマッピング(Shredding)の場合
- データ変更があるとマッピングをやり直す必要がある。
- XMLからリレーショナルへのマッピングが複雑。
- 一度細分化すると、原本の復元性を失ってしまう。
XML専用DBにおけるXMLデータ保管
- XMLデータの検索性能が優れている。
- XML文書をツリー構造のままデータベースに格納するので、マッピングなどは不要。
- XMLの特色である、変更に対する柔軟性を有効に活かせる。
- 大量データの処理には、パフォーマンスの観点から適さない。
- 運用管理、可用性、セキュリティーの機能がRDBと比べて堅牢でない。
- ビジネスデータとXMLデータの両方を扱う場合、RDBとXMLDBの2重投資が必要になる。
-
さくら :
なんだか、それぞれに長所と短所があるのね。
-
DB2マスク :
そうですよ、さくらさん。ひらめきましたか? 両方の短所を克服していいところをとってデータを活用するべく、DB2 9で新登場したのが、pureXMLなのです。
-
さくら :
ということは、pureXMLは柔軟性を保ったまま、パフォーマンス、運用管理などにも優れてるってこと?すごい!!!いいとこ取りのpureXMLなんですね!
-
ヒデノブ :
さすが、さくらさんは理解が速いな。それでは、DB2マスクにもっとpureXMLのことを教えてもらおうよ!
-
さくら :
あいかわらず、調子がいいのね。
-
DB2マスク :
はいはい、説明しましょう。
ハイブリッドのpureXMLで、アクセスも管理もシンプルに!
-
DB2マスク :
RDBでは、一度設計したテーブルの定義を後から変更することは、非常に多くのコストがかかる作業になるので、開発者やデータベース管理者は変更を嫌がります。一方で、たとえば、電話番号を1つ入力する構造にしていたが後から2つめも入力できるように追加したいとか、あるいは取り扱い商品のサイズや色やその他の属性などを追加や変更したい場合などは、XMLデータだと柔軟に追加・変更することができます。
これをpureXMLではXMLデータの形式で格納し、大量データでも高速に検索できるようにしています。
さらに、もっとも優れた点は、RDBと同居することでシングルアクセスでリレーショナル・データにもXMLデータにもアクセスできる、ハイブリッドの構造だということです。

図4
pureXMLはすでにお客様に実際にお使いいただいており、上のチャートは、医療システムにおいてリレーショナル・データとXMLデータをそれぞれ、データ特性にふさわしい形式で格納している例です。定型データをリレーショナル列へ、まばらで変更の多い属性データをXML列へ格納し、効率的なDB構築に成功しています。
-
ヒデノブ :
なるほど、ハイブリッドって、こうやってRDBとXMLデータ両方をうまく使いこなすってことなんですね。
みんながうれしいpureXML
-
さくら :
ところで開発のことなんだけど、RDBってSQL言語で書くでしょう?XMLだとどうなるの?
-
ヒデノブ :
さくらさん、いいポイントついてきたね。XMLはXQueryで書くんだけど、なんと、DB2 pureXMLでは、RDBデータへのアクセスもXMLデータへのアクセスも、SQLでもXQueryでもどちらでも開発ができるんだよ。だから、今までのスキルを活用してハイブリッドなDB2の構築ができるんだ。
-
DB2マスク :
ヒデノブくん、さすがですね。そのとおりです。さらに、pureXMLの開発におけるメリットとしてはXMLの柔軟性を損なうことなく、設計変更に対応できるので、開発コストを抑えられるメリットもあるんですよ。
-
さくら :
なるほどー。あと、RDBの誇る高パフォーマンスや信頼性も、同様にサポートされるんですよね?
-
ヒデノブ :
まかせてよ!バックアップ・リカバリーなどの運用管理機能も、セルフ・チューニング・メモリー管理などのオートノミック機能も、高可用性、セキュリティーも、それに、パフォーマンスもバッチリだから、管理者も安心して使用できるんだ。
-
DB2マスク :
そのとおりです。そして最も重要なことは、ハイブリッドで必要な情報を高速にタイムリーに入手できること、定型データも非定型データもシングルアクセスで、検索や分析を効率的に行えることです。これによって業務効率もあがるだけでなく、ビジネスチャンスも拡がることがイメージできましたか?
-
さくら :
そうか、pureXMLって、開発者も管理者もそしてユーザーも、みんながうれしい新機能っていうことですね。
-
DB2マスク :
そうです、みんながうれしいpureXML!まとめてみたので復習してくださいね。
まとめ
開発者にとってのメリット
- XMLデータとリレーショナル表へシングル・アクセス
- XQueryまたはSQL/XMLで開発することができるので、既存スキルを活用可能
- XMLの柔軟性を損うことなく、容易に変更に対応
- 設計・変更容易性により、開発期間・コストを大幅削減
管理者にとってのメリット
- XMLでも使えるRDBで培われた優れたデータベース性能
- バックアップ・リカバリーなどの運用・管理機能
- セルフ・チューニングなどのオートノミック機能
- 高可用性、セキュリティー、パフォーマンス性能など
お客様のビジネスを効率的に低コストで拡張
- RDBとXMLデータベースを融合し、ハイブリッドDB化
- RDBデータとXMLデータの両方の活用で二重投資不要
