XML データのストレージ構造

XML データのストレージ構造は、LOB データのストレージ構造と類似しています。

LOB データと同様に、XML 列が含まれている基本表 は、XML データが含まれている表とは異なる表スペースにあります。

XML データのストレージ構造は、以下の表で説明されているように、基本表を含む表スペースのタイプによって異なります。

表 1. 基本表スペースと対応する XML 表スペースの編成
基本表スペースの編成 XML 表スペースの編成 注釈
成長によるパーティション 1 増加対応パーティション XML 文書が複数のパーティションにまたがることがあります。 基本表スペースと XML 表スペースはそれぞれ単独で増大します。
範囲による分割 1 範囲によるパーティション化 基本表の行が新しいパーティションに移動すると、XML 文書も新しいパーティションに移動します。
パーティション化 (非 UTS) 範囲によるパーティション化 基本表の行が新しいパーティションに移動すると、XML 文書も新しいパーティションに移動します。

この表スペース・タイプは推奨されません。

セグメント化 (非 UTS) 増加対応パーティション この表スペース・タイプは推奨されません。
単純 増加対応パーティション この表スペース・タイプは推奨されません。
注:
  1. この表スペース編成は、XML バージョンをサポートします。

XML 列を含む基本表のセグメント化表スペースと、対応する XML 表スペースと表の間の関係を次の図に示します。 関係は、単純な基本表スペースと増加対応パーティション基本表スペースの場合と類似しています。 この図は、XML バージョンをサポートしていない XML 列を表わしています。

図1: セグメント化表スペースの基本表の XML ストレージ構造
図の説明の開始 この図は、セグメント化基本表スペースと関連 XML 表スペースとの関係を示します。 図の説明の終わり。

XML 列を含む基本表のパーティション化表スペースと、対応する XML 表スペースと表の間の関係を次の図に示します。 関係は、範囲によるパーティション基本表スペースの場合と類似しています。 この図は、XML バージョンをサポートしていない XML 列を表わしています。

図2: パーティション化表スペースの基本表の XML ストレージ構造
図の説明の開始 この図は、パーティション化基本表スペースと関連 XML 表スペースとの関係を示します。 図の説明の終わり。
XMLカラムを含むテーブルを作成したり、XMLカラムを追加するためにテーブルをALTERしたりすると、 Db2 データベースサーバーは暗黙的に以下のオブジェクトを作成します
  • 各 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 ステートメント」 を参照してください。