表のタイプ

Db2® データベースは、データを表に保管します。 永続データの保管に使用される表のほか、結果を提示するために使用される表、サマリー表や一時表もあります。マルチディメンション・クラスタリング表には、ウェアハウス環境における特定の利点があります。

基本表
このタイプの表では永続データが保持されます。 基本表にはさまざまな種類があります。以下に例を示します。
通常表
索引付き通常表は、「汎用の」表です。
マルチディメンション・クラスタリング (MDC) 表
このタイプの表は、複数のキーまたはディメンションで同時に物理的なクラスタリングが行われる表としてインプリメントされます。 MDC 表は、データウェアハウジングや大規模データベース環境で使用されます。 通常表における索引のクラスタリングは、データの 1 ディメンションだけのクラスタリングをサポートします。 MDC 表では、複数のディメンション間でのデータ・クラスタリングを利用できます。 MDC 表は、複合ディメンション内での保証されたクラスタリングを提供します。 それとは対照的に、通常表にクラスター索引を設定することもできますが、この場合のクラスタリングはデータベース・マネージャーによって試みられますが保証はされず、通常時間の経過とともに劣化します。 MDC 表はパーティション表と共存でき、パーティション表にすることもできます。
マルチディメンション・クラスタリング表は、 Db2 pureScale® 環境ではサポートされていません。
挿入時クラスタリング (ITC) 表
このタイプの表は、概念的にも物理的にも MDC 表に似ていますが、1 つ以上のユーザー指定のディメンションで行がクラスター化されるのではなく、表への挿入時刻でクラスター化されます。 ITC 表は、パーティション表にすることができます。
ITC 表は、 Db2 pureScale 環境ではサポートされていません。
範囲がクラスター化された表 (RCT)
このタイプの表は、データの順次クラスターとしてインプリメントされ、高速かつ直接のアクセスを可能にします。 表内の各レコードは事前定義されたレコード ID (RID) を持ちます。 この ID は、表の中でレコードを探索するために内部で使用されるものです。 RCT 表は、表内の 1 つ以上の列でデータが密にクラスタリングされている場合に使用されます。 この表では、列内の最大値と最小値によって、有効な値の範囲が定義されます。 表内のレコードへは、これらの列を使用してアクセスします。つまり、これが RCT 表の事前定義されたレコード ID (RID) の性質を利用する最良の方法です。
範囲がクラスター化された表は、 Db2 pureScale 環境ではサポートされていません。
パーティション表
このタイプの表は、表の 1 つ以上の表パーティション・キー列の値に従って、表データが、データ・パーティションまたは範囲と呼ばれる複数のストレージ・オブジェクトに分割されるデータ編成スキームを使用します。 データ・パーティションは、パーティション表に対して追加、アタッチ、デタッチすることができ、表からの複数のデータ・パーティション範囲を 1 つの表スペースに保管することができます。 パーティション表には、大量のデータを格納でき、表データのロールインおよびロールアウトが容易に行えます。
テンポラル表
このタイプの表は、時間に基づいた状態情報をデータと関連付けるために使用されます。 テンポラル・サポートを使用しない表のデータが現行データを表すのに対し、テンポラル表のデータは、データベース・システム、カスタマー・アプリケーション、またはその両方によって定義される期間有効です。 例えば、データベースは、表の履歴 (削除された行、または更新された行の元の値) を保管することができます。 これにより、データの過去の状態を照会することができます。 また、アプリケーションまたはビジネス・ルールによって有効であると見なされる時点を示すために、データの行に対して日付範囲を割り当てることもできます。
一時表
このタイプの表は、さまざまなデータベース操作の一時作業用の表として使用されます。 宣言済み一時表 (DGTT) は、システム・カタログには表示されません。そのため、この表を他のアプリケーションで使用するために保持したり、他のアプリケーションと共有したりすることはできません。 この表を使用するアプリケーションが終了したり、データベースから切断されたりすると、 表中のデータはすべて削除され、表はドロップされます。 反対に、作成済みの一時表 (CGTT) は、システム・カタログに表示され、使用する各セッションで定義する必要はありません。 結果として、この表は永続的であり、複数の異なる接続を通じて、他のアプリケーションと共有できます。
いずれのタイプの一時表でも以下はサポートされません。
  • ユーザー定義の参照またはユーザー定義の構造化タイプ列
  • LONG VARCHAR 列
また、XML 列は作成済みの一時表では使用できません。
マテリアライズ照会表 (MQT)
MQT は、MQT のデータ決定も行う照会によって定義されます。 マテリアライズ照会表を使用すると、照会のパフォーマンスが向上します。 照会最適化のデータベース構成設定に基づき、データベース・マネージャーは、照会の一部は MQT を使って解決できると判断します。 MQT は、そのデータが保守される方法によって分類されます。
シャドー表
シャドー表は、行オーガナイズ表のカラム・オーガナイズ MQT コピーです。 これには、ソース行オーガナイズ表のすべての列、または列のサブセットを含めることができます。 シャドー表は、レプリケーションによって保守されます。

前述の表タイプはすべて、CREATE TABLE ステートメントを使用して作成できます。

データがどのような種類のものになるかに応じて、ストレージと照会のパフォーマンスを最適化できる具体的な機能を提供してくれる 1 つの表タイプを見つけることができます。 例えば、緩くクラスター化されている (単調増加しない) データ・レコードがある場合は、通常表と索引を使用することを検討してください。 キー内に重複する (固有でない) 値を持つデータ・レコードがある場合は、範囲がクラスター化された表を使用しないでください。 また、使用する予定の、範囲がクラスター化された表に一定量のディスク・ストレージを事前に割り振る余裕がない場合は、このタイプの表は使用しないでください。 地域、部門、サプライヤー別の小売をトラッキングする表などのように、複数のディメンション間でクラスター化される可能性があるデータがある場合は、マルチディメンション・クラスタリング表が適しています。

前述のさまざまな表のタイプに加えて、パーティションなどの特性をオプションで指定できます。 パーティションを使用すると、表データのローリングなどのタスクのパフォーマンスを向上できます。 パーティション表は、通常の非パーティション表よりも多くの情報を保持できます。 また、圧縮 などの機能も使用できます。圧縮を行うと、データ・ストレージのコストを大幅に削減できます。