XML データのストレージ構造
XML データのストレージ構造は、LOB データのストレージ構造と類似しています。
LOB データと同様に、XML 列が含まれている基本表 は、XML データが含まれている表とは異なる表スペースにあります。
XML データのストレージ構造は、以下の表で説明されているように、基本表を含む表スペースのタイプによって異なります。
| 基本表スペースの編成 | XML 表スペースの編成 | 注釈 |
|---|---|---|
| 成長によるパーティション 1 | 増加対応パーティション | XML 文書が複数のパーティションにまたがることがあります。 基本表スペースと XML 表スペースはそれぞれ単独で増大します。 |
| 範囲による分割 1 | 範囲によるパーティション化 | 基本表の行が新しいパーティションに移動すると、XML 文書も新しいパーティションに移動します。 |
| パーティション化 (非 UTS) | 範囲によるパーティション化 | 基本表の行が新しいパーティションに移動すると、XML 文書も新しいパーティションに移動します。 この表スペース・タイプは推奨されません。 |
| セグメント化 (非 UTS) | 増加対応パーティション | この表スペース・タイプは推奨されません。 |
| 単純 | 増加対応パーティション | この表スペース・タイプは推奨されません。 |
注:
|
||
XML 列を含む基本表のセグメント化表スペースと、対応する XML 表スペースと表の間の関係を次の図に示します。 関係は、単純な基本表スペースと増加対応パーティション基本表スペースの場合と類似しています。 この図は、XML バージョンをサポートしていない XML 列を表わしています。
XML 列を含む基本表のパーティション化表スペースと、対応する XML 表スペースと表の間の関係を次の図に示します。 関係は、範囲によるパーティション基本表スペースの場合と類似しています。 この図は、XML バージョンをサポートしていない XML 列を表わしています。
- 各 XML 列に対応する表スペースと表。 XML 列のデータは対応する表に格納されます。
Db2 XML 列を含むベース・テーブルと同じデータベースに、XML テーブル・スペースとテーブルを作成します。 XML 表スペースのコード化スキームは Unicode UTF-8 です。
基本表に XML バージョンをサポートする XML 列が含まれる場合、各 XML 表に含まれる列は、XML バージョンをサポートしない XML 列の XML 表より 2 列多くなります。 これらの列の名前は START_TS および END_TS であり、ページ形式が基本 6 バイト形式の場合は BINARY(8) のデータ・タイプ、ページ形式が拡張 10 バイト形式の場合は BINARY(10) データ・タイプになります。 START_TS には、XML レコードの論理作成の RBA または LRSN が格納されます。 END_TS には、XML レコードの論理削除の RBA または LRSN が格納されます。 START_TS および END_TS は、XML 文書のバージョンを構成する XML 表内の行を示します。
- DB2_GENERATED_DOCID_FOR_XML という名前の、基本表内の文書 ID 列 (データ・タイプは BIGINT)。
DB2_GENERATED_DOCID_FOR_XML の行には、XML 列の固有の文書 ID が含まれています。 すべての XML 列に対して 1 つの DB2_GENERATED_DOCID_FOR_XML 列が使用されます。
DB2_GENERATED_DOCID_FOR_XML 列には GENERATED ALWAYS 属性が設定されています。 したがって、この列の値を NULL にすることはできません。
ベーステーブルスペースがXMLバージョンをサポートしている場合、XMLインジケーター列の長さは、XMLバージョンをサポートしていないベーステーブルスペースのXMLインジケーター列よりも8バイト長くなります。
- DB2_GENERATED_DOCID_FOR_XML 列の索引。
この索引は文書 ID 索引と呼ばれます。
- Db2 がドキュメントの順序を維持し、論理ノードIDを物理レコードIDにマッピングするために使用する、各XMLテーブルのインデックス。
この索引はノード ID 索引と呼ばれます。 ノード ID 索引は、拡張された非パーティション索引です。
基本表スペースが XML バージョンをサポートする場合、ノード ID 索引の索引キーに含まれる列は、XML バージョンをサポートしない基本表スペースのノード ID 索引の索引キーより 2 列多くなります。 これらの列の名前は START_TS および END_TS であり、BINARY(8) のデータ・タイプになります。
XML 表スペースの以下の属性を変更するなど、暗黙的に作成されたオブジェクトに対して限定的な SQL 操作を実行できます。
- SEGSIZE
- BUFFERPOOL
- STOGROUP
- PCTFREE
- GBPCACHE
また、文書 ID 索引またはノード ID 索引の以下の属性を除くすべての属性を指定することもできます。
- CLUSTER
- PADDED
- 列の数 (ADD COLUMN は使用できません)
これらのオブジェクトに対して実行可能な操作の一覧については、「ALTER TABLESPACE ステートメント 」、「ALTER TABLE ステートメント 」、および 「ALTER INDEX ステートメント」 を参照してください。