DB2 9 と DB2 V8.x の XML 機能を比較する
はじめに
DB2 UDB バージョン 8.x の XML サポートは、DB2 のリレーショナルインフラストラクチャをベースにしています。XML データは、そのまま Character Large Objects (CLOB) として格納されるか、リレーショナルテーブルに分解されて格納されます。一方、DB2 UDB Viperは、XMLデータを真の意味でネイティブにサポートする。XMLデータは新しいデータ型として扱われ、リレーショナルデータストアとは別に、パースと注釈が施されたツリーに格納されるようになりました。また、XMLスキーマに基づくXMLインデックス作成技術が導入され、XMLデータの問い合わせと公開のための言語としてXQueryとSQL/XMLがサポートされています。
DB2 UDB バージョン 8.x の XML サポート
DB2 8.x は、SQL/XML および DB2 XML Extender を使用して、基盤となるリレーショナルデータに XML 機能を提供します。DB2 XML Extender は、XML をサポートするために多くのユーザー定義型 (UDT)、ユーザー定義関数 (UDF)、ストアドプロシージャを提供します。XML ドキュメントはリレーショナル形式で保存され、XML Extender のインフラストラクチャを使用して、リレーショナルデータの XML 表現を提供します。また、リレーショナルデータをXMLにパブリッシュするための多くのSQL/XML関数がサポートされています。詳細は、DB2 XML Extender の Web サイトを参照してください。
DB2 では、XML および XSL パーサー(DB2 8.x の一部としてインストール)をコードに組み込むことができるユーザー定義の Java 関数およびストアド プロシージャを作成することもできます。
DB2 ViperにおけるXMLのサポート
DB2 Viper はネイティブの XML ストレージをサポートしており、問い合わせや公開のために XML をリレーショナル・テーブルに分解する必要がありません。この新しいストレージは、XML を XML Document Object Model (DOM) と同様にパースされ注釈が付けられたツリーとして保存します。このリリースでは、XML データをリレーショナル テーブルに分解する必要があるアプリケーションに対して、注釈付き XML スキーマ マッピングを使用した分解機能が強化されています。
XML 機能の比較 -- DB2 UDB バージョン 8.x と DB2 Viper
表1. XML 機能の比較 -- DB2 UDB バージョン 8.x と DB2 Viper
DB2 UDB バージョン 8.x
DB2 バイパー
ストレージとインデックス
XMLデータは、2つの形式で保存されます。
現状有姿の文書です。
- XMLCLOB、XMLVARCHAR、XMLFILE タイプの XML Extender カラム。
- BLOB、CLOB、VARCHAR 型のカラム。
- リレーショナルサブテーブルにXMLドキュメントの間接インデックスを作成する。
- 作成されたサブテーブルを更新するために、ドキュメントを解析します。
- DAD(Document Access Definition)を用いて既存のリレーションシップテーブルに分解する。
- XMLのリーフノードのみを分解し、SQLのカラムタイプにマッピングすることができます。
- 名前空間はサポートされていません。
- 機能が限定されており、複雑なXMLドキュメントを扱うことができない。
ネイティブドキュメントのXMLストレージをそのまま利用できます。
- 新しい階層型(ネイティブ)ストアをゼロから構築します。このストレージは、ドキュメントを任意のツリー形式で保存する。
- XMLタイプのカラムです。
- リーフノードのパス表現を使って、XMLインデックスを作成する。
- 挿入時にドキュメントをパースする。
- アノテーションされたXMLスキーママッピングを使用して、既存のリレーショナルテーブルに分解します。
- XML フラグメントを分解し、XML カラムタイプにマッピングすることも可能です。
- 名前空間を扱うことができます。
- DB2 の式や条件などの拡張機能を使用して、XML データをフィルタリングすることができます。
- DADで定義されている暗黙のバリデーション。
- XML Extender UDF svalidateを使用した明示的な検証。
- 文書型定義(DTD)を登録し、内部テーブルに格納する。
- ファイルシステムからXMLスキーマを取得する。
- このカラムに関連する暗黙のバリデーションはありません。
- SQL/XML関数XMLVALIDATEを用いた明示的な検証。
- DTDの検証はサポートされていません。
- DTDとXMLスキーマはXMLスキーマリポジトリ(XSR)に登録され、データベースに格納されます。
クエリやパブリッシングにSQL/XMLやXML Extenderの関数を使用します。
そのままのXMLドキュメントの場合。
- インデックスを持つサブテーブルを使ってドキュメントを問い合わせ、CLOBとしてドキュメントを取得します。
- サブドキュメントクエリにXML Extenderの関数を使用することができます。
リレーショナルテーブルに分解されたXMLデータ用。
- SQL/XML発行機能。
- XML Extender DAD マッピングと関数。
そのままのXMLドキュメントの場合。
- SQL/XML と XQuery を組み合わせて、リレーショナル データと XML データを取得し、公開することができます。
- 複数のXMLカラムを連結して使用することができます。
- XQuery を使用して、XML の照会、変換、および公開を行うことができます。
- SQL/XML発行機能。
- SQLのupdateステートメントを使用して、ドキュメントの完全な更新を実行します。
- 更新には、XML Extender UDF update を使用します。
- ドキュメントの完全な更新には、SQL update文を使用します。
- XQueryの更新を定義する標準がないため、サブドキュメントの更新はサポートされていません。
- 更新用ストアドプロシージャはdeveloperWorksからダウンロードすることができます。DB2 Viper における XML ドキュメントの部分的な更新 ( developerWorks、2006 年 5 月 ) を参照してください。
Websphere Studio アプリケーション開発者
- XMLスキーマエディタ
- DTDエディタ
- DADマッピングツール
- クエリビルダでSQL XMLはサポートされていません。
- Xerces と Xalan パーサー
- Java Database Connectivity (JDBC) ドライバではサポートされていません。
DB2 Control CenterとDB2 Develope
関連
-
解決する db2トランザクションログがいっぱいで、ログのディスク容量がいっぱいです問題の詳細な解決方法
-
シェルによるdb2データの抽出と更新
-
DB2プログラミングのヒント
-
SQL Server Connection Server を使用して DB2 Server にアクセスする
-
DB2 現在のユーザーテーブル、フィールド、インデックスなどの詳細を取得します。
-
メインフレームとミニコンピュータからDB2 9データサーバーにアクセスする方法
-
DB2 日付・時刻関数のアプリケーションノート
-
XQueryによるDB2 XMLデータのクエリ
-
DB2エキスパートのワン・ユンが語るビジネスインテリジェンスBI
-
DB2 より一般的で実用的なSQL文のまとめ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン