XMLデータのインデックスの格納構造の定義には、表、インデックスの場合と同様にDSO定義とDSI定義の2つがあります。
表、インデックス、XMLデータのインデックスの格納構造の関係を以下に示します。
図2.3 表、インデックス、XMLデータのインデックスの格納構造の関係
XMLデータのインデックスのDSOは、表に対してどのようなインデックスを作成するかを定義します。
XMLデータのインデックスのDSIは、表に付加するインデックスのデータを格納する領域を、データベーススペースに割り付けるために定義します。
DSOとDSIの関係は、1:1対応の場合と、1:n対応の場合があります。1:1対応は、表のデータを複数のDSIに分割しないで格納する場合です(“図2.3 表、インデックス、XMLデータのインデックスの格納構造の関係”)。また、1:n対応は、表のデータを複数のDSIに分割して格納する場合です。この場合、表のDSOにはデータの分割に対する規則を定義します。
以下にDSOとDSIの関係が、1:n対応の場合の例を示します。
図2.4 表、インデックス、XMLデータのインデックスの格納構造の関係(DSO:DSI = 1:n)
XML構造は、インデックス部とデータ部を構成要素としてもちます。
XML構造は、CREATE XMLGROUPで定義される検索パスごとに、構成要素のインデックス部とデータ部の対をもちます。
以下にXML構造の構成要素と検索パスの関係を示します。
XML構造の構成要素と検索パス
図2.5 a) DSI分割されていない場合
図2.6 b) DSI分割されている場合
BTREE構造と同じように、XML構造の構成要素を別のデータベーススペースに割り付けることができます。また、構成要素の容量を増やすために、構成要素を複数のデータベースに割り当てることもできます。
以下に、構成要素を別のデータベースに割り当てる場合と、複数のデータベースに割り当てる場合の例を示します。
図2.7 構成要素を別のデータベーススペースに割り当てる場合
図2.8 構成要素を複数のデータベーススペースに割り当てる場合
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)ベース表現
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用に獲得する格納領域の大きさを指定します。
XMLデータのインデックスのDSIのデータ部にスペースを割り付けます。