1. ホーム
  2. データベース
  3. デービーツー

DB2 9 (Viper)クイックスタート

2022-01-22 10:08:36
私が見ているdb2チュートリアルは:DB2 9 (Viper) Quick Startです。

DB2独自のXML機能を使いこなすために、以下のような一般的なタスクをこなしてください。

  1. テストデータベース、いくつかのサンプルテーブル、およびビューを含む、XMLデータを管理するためのデータベースオブジェクトを作成します。
  2. INSERT と IMPORT ステートメントを使用して、データベースに XML データを入力する。
  3. XMLデータのバリデーションを行う。DB2 を使用して XML スキーマを開発および登録し、データをインポートする際に XMLVALIDATE オプションを使用します。
以降の記事では、SQL を使用した DB2 XML データの照会、更新、削除、XQuery を使用した DB2 XML データの照会、DB2 XML データにアクセスする Java アプリケーションおよび Web コンポーネントの開発などのトピックについて説明します。
データベースオブジェクトの作成
まず、DB2 Unicodeデータベースを別途作成しましょう。DB2 Viper では、Unicode データベースだけが、XML ドキュメントと、整数、日付/時刻、可変長文字列などの従来型の形式の SQL データの両方を格納することができます。そして、このデータベース内に、XMLやその他の種類のデータを管理するためのオブジェクトを作成することになります。
テスト用データベースの作成
新しいDB2 Unicode "test" データベースを作成するには、DB2コマンド・ウィンドウを開き、リスト1のように、Unicodeエンコーディング・セットとサポートする地域を指定するステートメントを発行します。
リスト1. XML データを格納するためのデータベースを作成する
コードセット UTF-8 を使用したデータベーステストの作成 領域 us
Unicode データベースを作成した後は、DB2 が XML データを独自の階層形式で保存できるようにするために、特別なコマンドを発行したり、さらなる手順を踏んだりする必要はありません。
サンプルテーブルの作成
XMLデータを保存するには、1つ以上のXMLカラムを含むテーブルを作成します。これらのテーブルはドキュメントのコレクションのための論理コンテナとして機能します。裏側では、DB2 は実際には XML と非 XML データを格納するために異なるストレージスキームを使用します。しかし、サポートされているさまざまなデータ形式を管理するための論理オブジェクトとしてテーブルを使用することで、特に異なるデータ形式を単一のクエリで統合する必要がある場合、管理とアプリケーション開発の問題を簡素化することができます。
DB2テーブルには、XMLカラムのみ、従来のSQL型のカラムのみ、またはその両方を含むように定義することができます。本記事では後者のケースをモデル化しています。リスト 2 の例では、"test" データベースに接続し、2 つのテーブルを作成します。1 つ目は "items" テーブルで、商品の売り上げと商品に対する顧客のレビューに関する情報を追跡します。2 番目のテーブルは "customers"に関する情報を追跡し、連絡先に関するデータを含みます。なお、"comments" と "contactinfo" は新しい DB2 XML データ型に基づいており、その他のカラムは従来の SQL データ型に基づいていることに注意してください。
リスト2. XML データ用のテーブルを作成する
テストに接続します。
テーブルitemsを作成する (
id int primary key not null,
ブランド名 varchar(30),
itemname varchar(30)。
sku int,
srp decimal(7,2),
コメント xml
);
テーブルclients() を作成します。
id int primary key not null,
name varchar(50)。
status varchar(10)。
連絡先情報 xml
);
これらのテーブル定義例をよく見ると、"comments" と "contactinfo" のどちらの列も、XML文書の内部構造で定義されていないことに気づきます。これはDB2の重要な機能です。データを格納するために、XML のデータ構造(正確には XML スキーマ)をあらかじめ定義しておく必要はありません。つまり、スキーマが異なる XML 文書や、登録されているスキーマと関連性のない文書でも、同じ DB2 の列に格納することができるのです。この機能については、本記事でDB2にデータを格納する方法を説明する際に詳しく説明します。
ビューの作成
従来のSQLデータ型のみを含むテーブルのビューを作成するのと同様に、XMLデータを含むテーブルのビューも自由に作成することができます。リスト3の例では、"Gold" の状態を持つ顧客のビューを作成しています。
リスト3. XML データを含むビューを作成する
としてビューgoldviewを作成します。
select id, name, contactinfo
from clients where status='Gold';
インデックス作成に関するちょっとした注意点
最後に、データのクエリー速度を向上させるために、XMLカラムに特別なインデックスを作成する必要はありません。今回は入門編であり、サンプルデータも最小限であるため、このトピックは取り上げないことにします。しかし、実稼働環境では、適切なインデックスを定義することが、最適なパフォーマンスを実現するために重要です。DB2の新しいインデックス作成技術について理解するために、この記事の最後にある"References"のセクションをチェックしてみてください。
XMLデータの格納
テーブルを作成したら、次はそのテーブルにデータを入れる準備ができました。これは、SQL INSERT ステートメントを直接発行するか、DB2 IMPORT ツールを呼び出してバックグラウンドで INSERT ステートメントを発行することで実現できます。
INSERT文の使用
INSERT を使用すると、生の XML データを直接 DB2 に入力することができます。すでにアプリケーションを作成していて、XML データを変数に格納している場合は、おそらくこれが最も簡単な方法でしょう。しかし、DB2 Viper を使い始めたばかりで、アプリケーションを書きたくない場合は、INSERT 文を対話的に発行することができます(私は DB2 コマンドエディタを使うと便利だと思いますが、そうしたい場合はコマンドラインプロセッサを使うこともできます)。
DB2 コマンドエディターを使用するには、DB2 Control Center を起動し、上部のドロップダウンメニュー "Tools" から Command Editor を選択すると、図 1 のような別ウィンドウが表示されま す。
図1. DB2 コマンドエディタ

上のペインに以下の文を入力します。
リスト4. XML データを対話的に挿入する
テストに接続します。
insert into clients values (77, 'John Smith', 'Gold',
xmlparse(document '<addr>111 Main St., Dallas, TX, 00112</addr>')
空白を維持する)
)
左の緑色の矢印をクリックすると、コマンドが実行されます。
なお、XMLデータをオンラインで提供する場合(リスト4参照)には、XMLPARSE関数を呼び出して、ドキュメントを文字値からXML型の値に変換する必要があることに注意してください。この例の入力文書は、かなり単純なものです。ドキュメントが大きかったり複雑だったりする場合、リスト 4 に示すような INSERT ステートメントに XML データを入力するのは実用的ではありません。ほとんどの場合、ホスト変数またはパラメータータグを使用してデータを挿入するアプリケーションを書きます。この記事では、Java コードを書く簡単な例を紹介します。しかし、これは入門チュートリアルなので、アプリケーション開発のトピックについては詳しく説明しません。代わりに、DB2 の XML カラムにデータを入力する別の方法、IMPORT ツールの使用について説明します。
DB2 IMPORTの使用

[1]  [2] [3] 次のページ