DB2 XML エクステンダーは、ストアード・プロシージャー、ユーザー定義タイプ、 およびユーザー定義関数で構成されていて、 アプリケーション・プログラマーはこれによって、DB2 を使用して XML データを保管したり検索したりすることができます。 XML エクステンダーでは、文書アクセス定義 (DAD) と呼ばれる XML 文書フォーマットを使用して、 XML と関係データ間のマッピングを定義します。 XML エクステンダーは、XML 列アクセス方式か XML コレクション・アクセス方式のいずれかを使用して、 XML 文書の保管と検索を行います。
XML 列アクセス方式では、XML 文書をそのまま、タグ付きのデータとして保管します。 オプションで、サイド表の文書に索引を付けることもできます。 XML コレクション・アクセス方式では、通常の関係データ型を使用して、 分解した XML 文書を表中の行の集合として保管します。
文書アクセス定義 (DAD) ファイルは XML 文書で、保管および検索の際に、XML 文書の DB2 データベースへのマッピングを制御します。 DADX ファイルは XML エクステンダー DAD ファイルの拡張機能で、 ここには、XML エクステンダーを使用しない標準の SQL 機能も組み込まれています。 DADX によって、XML エクステンダーが管理する XML 文書を保管し、検索する Web サービスが作成できるようになります。 DADX ファイルは、SQL ステートメント、および DAD ファイル (オプション) が定義する一連の操作を使用する Web サービスの作成方法を指定します。
DB2 バージョン 8.2 以降では、Web サービスを実装するデータベース操作をアプリケーション・サーバーに静的に保管したり、実行するデータベース操作をクライアントに動的に決定させたりする可能性があります。 クライアントによるデータベース操作の動的な実行は、動的照会サービス (DQS) と呼ばれます。DQS サービスでは、DADX ファイルは DQS タグのみを含み、その他の操作は含みません。使用するデータベースにかかわらず、すべての DQS サービスについて WSDL は同じです。 このサービスによって、JDBC や ODBC に似たデータベースへのより低いレベルでのアクセスが提供されます。 このサービスの操作は、メタデータの入手、選択、挿入、更新と削除、およびストアード・プロシージャーの実行です。
XML ベースの操作も SQL ベースの操作も、DADX と呼ばれるファイルによって制御されます。 DADX は、Web サービスが実行できる操作を定義します。DADX ファイルは、Web サービスのランタイム環境を駆動します。この環境には、各種のデータベース管理ツールおよび Web オブジェクト・ランタイム・フレームワーク (WORF) が含まれます。WORF ランタイム環境は、XML スキーマから SQL データ型への単純なマッピングを行います。DADX ファイルには、SELECT、INSERT、UPDATE、DELETE、および CALL ステートメントなど、データベースを照会して更新し、ストアード・プロシージャーを呼び出すための標準の SQL ステートメントを含むことができます。 実行時に SQL ステートメントを処理するには、WORF に提供される動的照会サービス (DQS) を使用可能にする必要があります。これには、<DQS/> タグのみを含む DADX ファイルを使用します。
静的 DADX ファイルについて、サポートされている Web サービス操作のタイプは次のとおりです。
XML ベースの操作には次のものが含まれます。
- 照会
- 保管
XML ベースの照会を使用すると、関係データから XML 文書を構成することができます。 XML 文書はコンポーネントに分解されて、関係テーブルに保管されます。 マッピング・ファイル (DAD ファイルと呼ばれます) は、関係データと XML 文書構造間の関連付けを行います。 SQL データの XML 要素および属性へのユーザー定義マッピングを行う場合は、DB2 XML エクステンダーが必要です。
SQL ベースの操作には次のものが含まれます。
- ストアード・プロシージャーの呼び出し
- 挿入
- 更新
- 削除
- 照会
SQL ベースの照会を使用すると、SQL ステートメント (ストアード・プロシージャー呼び出しを含む) を DB2 に送信し、 結果をデフォルトのタグを付けて戻すことができます。 SQL ベースの操作では、DB2 XML エクステンダーは必要ありません。 SQL データの XML 要素および属性へのユーザー定義マッピングがないからです。 データは、SQL データ型の簡単なマッピングだけを使用して (要素には列名を使用して) 戻されます。
DADX ファイルには、文書アクセス定義 (DAD) ファイルの参照、XML 文書の生成および保管を行う XML 収集オペレーション、またはユーザー定義型 (UDT) などの DB2 XML エクステンダー要素、およびユーザー定義関数 (UDF) を含むことも可能です。 DAD ファイルは、XML とリレーショナル・データのマッピングをします。DB2 XML エクステンダーにより、XML 文書をそのままの形で保管し、オプションとしてサイド・テーブルに索引付けを行うことができます。 DB2 XML エクステンダーではこれを、XML 列アクセス方式を使用して行うか、XML コレクション・アクセス方式によりリレーショナル・テーブルのコレクションとして処理します。
次のダイアグラムは、XML エクステンダーと DAD と DADX の関係を示すものです。
図 1. XML エクステンダーと DAD と DADX の関係