補助テーブルの作成と編集

提供: ER/Studio Data Architect
移動先: 案内検索

データベース固有のオブジェクトの作成と編集 への移動

補助テーブルは、ラージ オブジェクト(LOB)カラムのデータを格納するために作成されます。LOB カラムは、ベース テーブルと呼ばれる標準テーブル内のカラムです。LOB カラムのデータ型は BLOB または CLOB で、格納されるデータはラージ オブジェクトです。このデータは非常に大きいため、テーブル内の他のデータと共には格納されません。ベース テーブルには、LOB カラムが VARCHAR(4) として論理的に格納されますが、物理的には LOB カラムのデータは補助テーブルに格納されます。各 LOB カラムには、1 つ以上の補助テーブルが関連付けられています。非パーティション テーブルでは、各 LOB カラムに対して 1 つの補助テーブルが必要です。パーティション化されたベース テーブルに LOB カラムが定義されている場合は、各パーティションの各 LOB カラムに対して 1 つの補助テーブルが必要です。たとえば、4 つのパーティションがあるベース テーブルに 2 つの LOB カラムがある場合、合計 8 つの補助テーブルが必要です。

Notepad blue icon 2.pngメモ: それぞれの補助テーブルは、補助テーブル自身の補助テーブルスペースに格納する必要があります。また、補助テーブルにはユニーク インデックスを作成する必要があります。

補助テーブルは、次のデータベース プラットフォームでサポートされます。

  • IBM DB2 for OS/390 5.x および 6.x
  • IBM DB2 for z/OS 7.x、8.x、9.x および 10.x

Notepad blue icon 2.pngメモ: 補助テーブル ウィザードと補助テーブル エディタには同じオプションが表示されます。ただし、[アタッチメントのバインド]オプションはエディタのみに表示されます。

補助テーブルを追加する

  1. モデル エクスプローラで、物理[メイン モデル]を展開します。[補助テーブル]ノードを右クリックして、ショートカット メニューの[補助テーブルの作成]をクリックします。
  2. 補助テーブル ウィザードのステップを完了したら、[完了]をクリックすると補助テーブルが作成されます。

ヒント: 作成したトリガーを編集するには、トリガーを右クリックして、ショートカット メニューの[トリガーの編集]をクリックします。

以下のセクションでは、補助テーブル ウィザードのオプションの設定について説明します。

[名前]タブ

[ベース テーブル]タブ

[ストレージ]タブ

[インデックス オプション]タブ

[定義]タブ

[DDL]タブ

[アタッチメントのバインド]タブ

[名前]タブ

補助テーブルとその所有者の名前を入力します。

  • 補助テーブル名は、補助テーブルの完全修飾名です。現在のサーバー上のテーブル、ビュー、エイリアス、またはシノニムと同じ名前にすることはできません。
  • 所有者名は、補助テーブルに格納するカラムが含まれるベース テーブルの所有者名です。この名前は、テーブル名を特定する認証 ID になります。所有者名の指定は必須です。

[ベース テーブル]タブ

  • ベース テーブルの識別子は、補助テーブルに格納するカラムが含まれるベース テーブルの名前です。補助テーブルは LOB カラムのデータを格納するために作成されます。LOB カラムは、ベース テーブルと呼ばれる標準テーブルに論理的に格納されます。ただし、LOB カラムのデータは非常に大きく、ベース テーブルには物理的に格納できないため、補助テーブルに格納されます。ベース テーブルの識別子は「所有者名.テーブル名」で表すこともできます。ドロップダウン リストには、BLOB または CLOB データ型のカラムが定義されたすべてのテーブルの名前が表示されます。ベース テーブルの識別子は、ER Studio Data Architect では必須の指定です。有効な CREATE AUX TABLE SQL 文には必要です。
  • 非パーティション ベース テーブルでは、各 LOB カラムに 1 つの補助テーブルが必要です。ただし、LOB カラムがパーティション化されたベース テーブルに定義されている場合、各 LOB カラムにはベース テーブルの各パーティションに対して個別の補助テーブルが必要です。ドロップダウン リストには、選択したベース テーブルで BLOB または CLOB データ型として定義されたすべてのカラム名が表示されます。LOB カラム名は、ER Studio Data Architect では必須の指定です。有効な CREATE AUX TABLE SQL 文には必要です。
  • パーティション化されたテーブルに補助テーブルを作成する場合、データを格納するパーティションの番号を指定できます。この指定が有効になるのは、LOB カラムが定義されているベース テーブルが、パーティション化されたテーブルスペースに格納されている場合のみです。

[ストレージ]タブ

  • モデル内に定義済みのデータベースがある場合、補助テーブルを作成するデータベースを一覧から選択できます。詳細は、「データベースの作成と編集」を参照してください。
  • それぞれの補助テーブルは、独自のテーブルスペースに定義する必要があります。つまり、各補助テーブルに 1 つのテーブルスペースが必要になります。テーブルスペース名は、テーブルスペースが含まれるデータベース名で修飾することができます。「データベース名.テーブルスペース名」という表記で、テーブルスペースの識別子になります。テーブルスペース名は、ER Studio Data Architect では必須の指定です。有効な CREATE AUX TABLE SQL 文には必要です。詳細は、「テーブルスペースの作成と編集」を参照してください。
  • 各補助テーブルには、ユニーク インデックスが必要です。

[インデックス オプション]タブ

  • [Concurrent Copy]: (COPY)インデックスの同時コピーが許可されます。インデックスのリカバリをサポートして、インデックスの可用性を向上させることができます。
  • [Do Not Close Dataset]: (CLOSE)未使用のインデックスがクローズされません。このオプションを選択しない場合、開いているデータセットが最大数に到達するか、または最大数を超過したときに、未使用のデータセットがクローズされます。
  • [None]:  CREATE INDEX 文に USING 句を含めません。
  • [VCAT]: (VCAT)選択すると、仮想カタログ(VCAT)を使用して管理されているデータ セット上にインデックス領域を割り当てます。領域の名前はこのオプションの横に入力します。ユーザーは、インデックスに必要なデータ セットを管理します。VCAT は通常、システム カタログの定義に使用されます。インデックス領域の作成前に、VSAM データセットをあらかじめ定義する必要があります。
  • [STOGROUP]: (STOGROUP)選択すると、DB2 によって管理されるデータ セットのインデックスを、指定したストレージ グループ内に保存します。インデックス領域が定義されたストレージ グループでは、すべての VSAM 割り当て作業が DB2 によって行われます。ストレージ グループ エディタ(「ストレージ グループの作成と編集」を参照)を使用して、データ モデルにストレージ グループを作成済みの場合、一覧からストレージ グループを選択できます。STOGROUP を選択すると、[PRIQTY]および[SECQTY]の値を定義できます。パーティション化していないインデックスに無駄な領域を作成しないようにするには、[PRIQTY]および[SECQTY]を定義しないでください。 代わりに、インデックスに割り当てる一次および二次領域が DB2 によって管理されます。
  • [PRIQTY]: (PRIQTY)インデックスに最初に割り当てるディスク領域の最小値をキロバイト単位で指定します。一次割り当ての領域は、予測したストレージ量を扱えるサイズにする必要があります。
  • [SECQTY]:  (SECQTY)インデックスが一次割り当てのサイズに達したときに割り当てるディスク領域のサイズをキロバイト単位で指定します。二次割り当ての領域が小さすぎると、より大きな領域を必要とするアクティビティに対応するために、データ セットが頻繁に拡張されることがあります。デフォルト値である-1は、DB2 が二次割り当てのサイズを決定することを示します。通常は一次割り当ての 10% のサイズになります。
  • [Erase Data]: (ERASE)インデックスの削除時にインデックスのデータ セットが消去されます。
  • [Buffer Pool]: (BUFFERPOOL)インデックスに使用するバッファ プールを選択します。バッファ プールの種類によって、データ アクセスを高速化するためにデータ ブロックをメモリ内にキャッシュする方法が決まります。BP0はソート用のデフォルト バッファ プールです。
  • [Percent Free]: ( PCTFREE)将来の更新のために各データ ブロックに確保する領域の割合の最大値を指定します。この予約領域により、更新処理でデータ行の長さが拡張されることで生じる、行の移行や連鎖を回避できます。更新されないテーブルでは、この値を 0 に設定してください。
  • [Free Page]: (FREEPAGE)インデックス エントリの作成時に空き領域ページを残す頻度を指定します。0 ~ 255 の範囲でここに指定したページ番号ごとに、1 つの空きページが確保されます。
  • [Piece Size]: (PIECESIZE)二次インデックスの各データ セットにアドレス可能な最大領域を指定します。サイズ値の後に、「K」(キロバイト)、「M」(メガバイト)、「G」(ギガバイト)のいずれかを追加します。単位を指定しない場合は、キロバイト単位で解釈されます。ギガバイトで指定したサイズは、DDL でメガバイト単位に変換されます。
  • [GBP Cache]: (GPBCACHE)データ共有環境で、グループ バッファ プールに書き込まれるインデックス ページを指定します。このオプションは、非データ共有環境では無視されます。ただし、宣言済みの一時テーブルにインデックスが存在する場合は除きます。
  • [Changed]:  更新されたページをグループ バッファ プールに書き込みます。
  • [All]:  DASD から読み込まれたすべてのページを、グループ バッファ プールにキャッシュします。
  • [None]: バッファ プールを相互無効化にのみ使用します。

[定義]タブ

補助テーブルの定義を入力または編集します。対象データベースでサポートされる場合、SQL コードの生成時に、この定義がコメントとして追加されます。

[DDL]タブ

補助テーブルの作成に使用される CREATE AUXILIARY TABLE 文が表示されます。モデルで選択されたデータベース プラットフォームに固有のパーサーを使用して、補助テーブルを生成します。

[アタッチメントのバインド]タブ

アタッチメント(外部情報)を補助テーブルにバインドします。また、オブジェクトからアタッチメントを削除したり、アタッチメントのバインドのデフォルト値を上書きしたり、バインドされたアタッチメントの位置を変更することもできます。選択したアタッチメントのグリッド(画面の右側)に移動したアタッチメントの値をオーバーライドするには、対象となるアタッチメントの[値]フィールドをダブルクリックします。アタッチメントのデータ型に応じて、[上書き値エディタ]またはリスト ボックスが表示されます。アタッチメントは、[データ ディクショナリ]タブの[アタッチメント]フォルダに作成されます。詳細は、「データ モデルへの外部ドキュメントの関連付け」を参照してください。

関連項目