ページの先頭行へ戻る
Symfoware Server V10.0.0 RDB運用ガイド(XMLアダプタ編)

2.2.1 XMLデータのインデックスの格納構造

XMLデータのインデックスの格納構造の定義には、表、インデックスの場合と同様にDSO定義とDSI定義の2つがあります。

表、インデックス、XMLデータのインデックスの格納構造の関係を以下に示します。

図2.3 表、インデックス、XMLデータのインデックスの格納構造の関係

以下にDSOとDSIの関係が、1:n対応の場合の例を示します。

図2.4 表、インデックス、XMLデータのインデックスの格納構造の関係(DSO:DSI = 1:n)

以下にXML構造の構成要素と検索パスの関係を示します。

XML構造の構成要素と検索パス

図2.5 a) DSI分割されていない場合

図2.6 b) DSI分割されている場合

BTREE構造と同じように、XML構造の構成要素を別のデータベーススペースに割り付けることができます。また、構成要素の容量を増やすために、構成要素を複数のデータベースに割り当てることもできます。

以下に、構成要素を別のデータベースに割り当てる場合と、複数のデータベースに割り当てる場合の例を示します。

図2.7 構成要素を別のデータベーススペースに割り当てる場合

図2.8 構成要素を複数のデータベーススペースに割り当てる場合

XMLデータのインデックスのDSO定義

XMLデータのインデックスのDSOは、CREATE DSO文により定義できます。以下にCREATE DSO文の記述形式を示します。

CREATE DSO  伝票IXDSO  INDEX  ON  伝票スキーマ.伝票表  (伝票)
                (1)                          (2)         (3)
                            |--------------- (4) ---------------|
  
                             TYPE  XML(PAGESIZE1(16),PAGESIZE2(1))
                                              (5)
  
                                BY  ADDRESS
                                    (6)

(1)DSO名

(2)表名

(3)列名

(4)キー指定

(5)データ構造

(6)ベース表現

DSO

DSO名は、36文字以内の先頭が英字で始まる英数字、または18文字以内の日本語文字列を指定します。なお、DSO名は、データベース内で一意です。

キー指定

インデックスを作成する表名およびXML文書が格納される列の名前を指定します。

表名

DSO定義の対象となる実表の名前を指定します。表名は、スキーマ名で修飾する必要があります。

列名

XMLデータが格納される列の名前を指定します。

列名に指定できる列の型は、BLOB型です。

データ構造

インデックスのデータ格納時のデータ構造を指定します。XMLデータを検索するためのインデックスを作成する場合は、XMLを指定します。

XML

PAGESIZE1は、データ部のページ長を指定します。

PAGESIZE2は、インデックス部のページ長を指定します。

ベース表現

インデックスとベースの対応関係を指定します。XML構造のインデックスのDSOを定義する場合は、ADDRESSを指定します。

XMLデータのインデックスのDSI定義

XMLデータのインデックスのDSIは、CREATE DSI文により定義できます。以下にCREATE DSI文の記述形式を示します。

CREATE DSI  伝票IXDSI1  INDEX  DSO  伝票IXDSO
               (1)                          (2)
  
      BASE  伝票表DSI1
             (3)
  
        ALLOCATE  BASE      ON        DBSP_1          SIZE      200K,
                  INDEX     ON        DBSP_1          SIZE       40K;
                  (4)                (5)                    (6)
       |-------------------------- (7) ---------------------------|

(1)DSI名

(2)DSO名

(3)表のDSI名

(4)割付け対象

(5)データベーススペース名

(6)割付け量

(7)スペース割付け

DSI

DSI名は、36文字以内の先頭が英字で始まる英数字、または18文字以内の日本語文字列を指定します。なお、DSI名は、データベース内で一意です。

DSO

CREATE DSO文で指定したインデックスのDSO名を指定します。

表のDSI

対応する実表をDSI名で指定します。表の分割運用を行う場合、インデックスは表のDSIごとに作成します。表の分割運用を行わない場合は、表のDSI名を指定できません。

スペース割付け

インデックスのDSIに対して物理的なスペースを割り付ける指定をします。

データを物理的に格納するデータベーススペース名およびデータベーススペース中に、このDSI用に獲得する格納領域の大きさを指定します。

割付け対象

スペースを割り付ける対象を指定します。

BASE:

XMLデータのインデックスのDSIのデータ部にスペースを割り付けます。

INDEX:

XMLデータのインデックスのDSIのインデックス部にスペースを割り付けます。

データベーススペース名

実際にインデックスのデータを格納する、物理的なデータベーススペース名を指定します。

スケーラブルログ運用を行う場合、データを複数のデータベーススペースに格納するには、同じロググループ内のデータベーススペース名を指定します。

割付け量

割付け量には、データベーススペース中に獲得する格納領域の大きさを、符号なし整数と単位記号(KまたはM)の組合せで指定します。単位記号Kはキロバイト、単位記号Mはメガバイトを示します。