2007年12月より、XML技術者認定制度「XMLマスター」の新試験「XMLマスター:プロフェッショナル(データベース)」が開始されました。XMLデータベースを活用したシステム構築の事例が増加する中、こうした業務に対応できる技術者の育成を目指すという目的で誕生した新資格ですが、試験内容はかなり実践的な内容となっていて対策本などの書籍だけの学習では身に付けることが難しい、実践的な学習が必要になっています。
この記事では、XPathやXQueryを実際に動作させながら学習できる環境を、DB2 Express-CとIBM Data Studioを使って構築し利用する方法を解説します。
ここではXMLデータベースとして、”DB2 Express-C 9.5”、XPath/XQueryの実行環境として”IBM Data Studio”を使います。それぞれのインストールや初期セットアップについては、「DB2 Express-C 9.5 for Windows クイックインストール」及び「IBM Data Studioクイック・スタート」で分かりやすく解説されていますので、この2つの記事を参考にセットアップして下さい。
また、データベースも必要なので、「DB2 Express-C 9.5 for Windows クイックインストール」を参考にサンプル・データベース(SAMPLE)も準備しておきます。
IBM Data Studioを起動し、データベース・エクスプローラーでSAMPLEデータベースに接続しておきます。
次に、「ファイル」->「新規」->「データ開発プロジェクト」から、新しいプロジェクトを作成します。
プロジェクト名は任意ですので、分かりやすい名前を付けて下さい。
「接続の選択」では、「既存の接続の使用」でSAMPLEデータベースを選択します。
「終了」ボタンをクリックすると、データ・プロジェクト・エクスプローラーに作成したプロジェクトが表示されます。それでは、XPath式を実行してみましょう。
データ・プロジェクト・エクスプローラーの「SQLスクリプト」を右クリックして、「新規」->「SQLまたはXQueryスクリプト」を選択します。
スクリプトに任意の名前を付けて、そのまま「終了」ボタンをクリックすると、SQLエディターに空のスクリプトが用意されます。
XQueryでは、セミコロン”;”は式中でも使用されますので、デフォルトのステートメントの終了文字を変更しておきます。SQLエディター上で右クリックすると、「ステートメント終了文字の変更」メニューがありますので、XQuery中ではあまり使用されない”!”などに変更しておきます。
いよいよ、SQLエディターでXPathを記述します。このときに先頭に”xquery”の記述が必要になります。この記述はXQueryのプロローグではなく、DB2がSQLを解析する際に、XQueryであることを明示的に示す必要があるためです。
この例では、XPath式中に直接XML文書を記述しています。
プロローグを記述する際には、”xquery”の記述の後に書きます。
XPathの記述が出来たら、SQLエディターを右クリックし、「SQLの実行」を選択するとXPathが実行され、データ出力タブに実行状況と結果が表示されます。
新しいSQLステートメントを用意し、SQLエディター上で右クリックすると「コンテンツ・アシスト」メニューが表示されますので、このコンテンツ・アシストから「for – return文節のあるfor文節」を選択します。
テンプレートが表示されますので、「xml_node_sequence」の部分にシーケンスを指定します。
例えば、” (<a>1</a>, <b>2</b>)”と指定し、SQLエディターを右クリックして「SQLの実行」を選択するとXQueryが実行されます。
データ出力タブに実行状況と結果が表示されます。
この他にもさまざまなテンプレートが用意されています。
前述のコンテンツ・アシストで、今度は”db2-fn:xmlcolumn関数”を選択します。この関数はテーブルのXML列に格納されているXML文書をXQueryのシーケンスとして利用するというものです。
[スキーマ名].[テーブル名].[カラム名]を指定しますが、必ず大文字である必要があります。
ここではサンプル・データベースの”CUSTOMER”表にある”INFO”というXML列を指定しています。(DB2ADMIN.CUSTOMER.INFO)
また、”db2-fn:xmlcolumn関数”の代わりに”db2-fn:sqlquery関数”を使う事で、SQLを使ってXML文書を絞り込んだり、XMLTABLE関数などを使い、リレーショナル・データからXML文書を生成してXQueryに渡す事も可能です。
この際に、1行目のコメント部分でエラーが表示される場合がありますが、コメント部分なのでXQueryの実行には影響ありません。
このように、IBM Data Studioを使う事でXPathやXQueryを手軽に実行する事が出来ます。また、コンテンツ・アシスト機能や構文チェック機能がありますので、正しい構文を理解する手助けとなることでしょう。
-
DB2 Express-C デベロッパーポータル: Express-C関連の情報が集められています
-
DB2 Developer Domain: DB2の日本語技術情報サイトです
-
User's Forum for DB2 Japan: DB2に関する日本語の掲示板です
-
DB2 9 XML Wiki: DB2のXML機能に関する情報が集められています。(英語)
-
一気に分かる“XQuery”ハンズオン演習 (@IT): XQueryの基礎をDB2 9を使用して分かりやすく解説しています。
