IBM Books

管理およびプログラミングの手引き

計画

XML エクステンダーを使用して文書を保管する前に、XML 文書の構造を解明して、 文書を検索する方法を決める必要があります。 文書の検索方法を計画するときに、以下のことを決める必要があります。

以下の項に、これらの決定を下す方法について説明します。

XML 文書の構造

この章の演習の XML 文書の構造では、 発注キーを使って構造化されている個々の注文に関する情報を最上レベルとし、 次に顧客、パーツ、および出荷情報を下位レベルとして取り込みます。 XML 文書に関しては 図 4に説明されています。

またこの演習では、 XML 文書の構造を理解および検査するのに使用するサンプル DTD も用意されています。 DTD ファイルは、付録 B, サンプル にあります。 これは、図 4 の中の構造に一致します。

図 4. DTD および XML 文書の階層構造


DTD および XML 文書の階層構造

XML 列の XML データ・タイプの判別

XML エクステンダーには、 XML 文書を入れる列を定義するのに使う XML ユーザー・データ・タイプが備わっています。 それらのデータ・タイプは次のとおりです。

この演習では小さい文書を DB2 に保管するので、XMLVarchar データ・タイプを使います。

検索対象の要素と属性の判別

XML 文書の構造とアプリケーションの必要事項を理解すれば、どの要素と属性を検索すればよいか、 また、最も頻繁に検索または抽出される要素と属性、 あるいは照会に最も経費のかかる要素と属性を判別することができます。 サービス部門からの通知によれば、 注文キー、顧客名、価格、および注文品の出荷日付が最も頻繁に照会され、 その検索での迅速なパフォーマンスが必要です。 この情報は、XML 文書構造の要素と属性に入ります。 表 2 は、 各要素と属性のロケーション・パスを説明しています。


表 2. 検索する要素と属性
データ ロケーション・パス
注文キー /Order/@key
顧客 /Order/Customer/Name
価格 /Order/Part/ExtendedPrice
出荷日付 /Order/Part/Shipment/ShipDate

サイド表に対する XML 文書のマッピング

このチュートリアルでは、XML 列用の DAD ファイルを作成し、 XML 文書を DB2 内に保管するのにそれを使用します。 また、パフォーマンスを向上するため、 索引付けに使われる DB2 サイド表に対して XML 要素と属性をマップします。 前の項で、どの要素と属性が検索対象になるかを判別しました。 この項ではさらに、 索引付け可能な DB2 表に対するそのような要素と属性値のマッピングを習得します。

検索する要素と属性を確認し終わったら、サイド表内でのそれらの編成の仕方、表の数、 およびどの表内にどの列が入るかを判別します。 通常、似通った情報を同じ表内に入れてサイド表を編成します。 いずれかの要素のロケーション・パスを文書内で複数回反復できるかどうかによっても構造は決まります。 たとえばここの文書では、パーツ要素が複数回繰り返されることがあるので、 価格と要素も複数回出現する可能性があります。 複数回出現する可能性のある要素は、それ専用の表に入っていなければなりません。

さらに、どの DB2 基本タイプを要素または属性値に使用すべきかも判別する必要があります。 通常それは、データの形式によって簡単に判別することができます。 データがテキストであれば VARCHAR を選び、データが整数であれば INTEGER を選び、 データが日付の場合に範囲検索を行いたければ DATE を選びます。

このチュートリアルでは要素と属性を、次のようなサイド表にマップします。

ORDER_SIDE_TAB

列名 データ・タイプ ロケーション・パス 複数回出現するかどうか
ORDER_KEY INTEGER /Order/@key いいえ
CUSTOMER VARCHAR(16) /Order/Customer/Name いいえ

PART_SIDE_TAB

列名 データ・タイプ ロケーション・パス 複数回出現するかどうか
PRICE DECIMAL(10,2) /Order/Part/ExtendedPrice はい

SHIP_SIDE_TAB

列名 データ・タイプ ロケーション・パス 複数回出現するかどうか
DATE DATE /Order/Part/Shipment/ShipDate はい

このチュートリアル用に、環境を設定するためのスクリプトのセットが用意されています。 そのスクリプトは DXX_INSTALL\samples\cmd ディレクトリーにあります。 ここで、DXX_INSTALL は、 たとえば c:\dxx\samples\cmd などの、 XML エクステンダーをインストールしたドライブおよびディレクトリーです。 それは以下のとおりです。

getstart_db.cmd
データベースを作成して、4 つの表にデータを取り込みます。

getstart_prep.cmd
データベースを XML エクステンダーのストアード・プロシージャーと DB2 CLI にバインドします。

getstart_insertDTD.cmd
XML 文書を妥当性検査するのに使用する DTD を XML 列に挿入します。

getstart_createTabCol.cmd
XML 対応の列をもつアプリケーション表を作成します。

getstart_alterTabCol.cmd
XML 対応にする列の追加によってアプリケーション表を更新します。

getstart_enableCol.cmd
XML 列を使用可能にします。

getstart_createIndex.cmd
XML 列用にサイド表に索引を作成します。

getstart_insertXML.cmd
XML 文書を XML 列に挿入します。

getstart_queryCol.cmd
アプリケーション表に対して SELECT ステートメントを実行し、XML 文書を戻します。

getstart_clean.cmd
チュートリアル環境を終結処理します。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]