2.1.1 表
HADBでは,表形式でデータを管理します。
一般的なリレーショナルデータベースと同様に,HADBの表は,行と列から構成されています。表の横方向を行,縦方向を列といいます。各行の同じ列には同じ形式のデータが格納されます。
1つの行は1つ以上の列から構成されています。行は表を操作するときの単位となります。
表には実表とビュー表があります。各表の詳細を次に示します。
(1) 実表
実表は,データベースに格納している実体がある表のことです。
実表には,シングルチャンク表とマルチチャンク表の2種類があります。実表の定義時に,どちらの種類の実表にするかを指定します。
-
1表に1つのチャンクだけを作成できる実表のことです。シングルチャンク表の場合,バックグラウンドインポート機能を使用することができません。
-
1表に複数のチャンクを作成できる実表のことです。マルチチャンク表の場合,バックグラウンドインポート機能を使用できます。
また,マルチチャンク表には,レギュラーマルチチャンク表とアーカイブマルチチャンク表の2種類があります。
チャンクおよびバックグラウンドインポート機能については,「2.12 バックグラウンドインポート機能」を参照してください。
チャンクアーカイブ機能については,「2.13 チャンクアーカイブ機能(チャンク内のデータの圧縮)」を参照してください。
- ポイント
-
実表の種類と使用できる機能の関係を次の表に示します。
表2‒1 実表の種類と使用できる機能の関係 実表の種類
使用できる機能
バックグラウンドインポート機能
チャンクアーカイブ機能
シングルチャンク表
×
×
マルチチャンク表
レギュラーマルチチャンク表
○
×
アーカイブマルチチャンク表
○
○
- (凡例)
-
○:使用できます。
×:使用できません。
(2) ビュー表
CREATE VIEW文に指定した問合せ式本体の結果を,新たな表として定義した仮想的な表をビュー表といいます。複数の表に対する集合演算の結果をビュー表として定義したり,表中の特定の行や列だけを取り出してビュー表として定義したりすることができます。
何度も指定される条件で検索した結果を,あらかじめビュー表として定義しておくことで,データベースを検索する操作が簡単になります。ビュー表の例を次の図に示します。
|
|
- [説明]
-
実表のSTOCK表から,PNAME(商品名)列が「Shirt」の行である,PCODE(商品コード)列,PRICE(単価)列,およびQUANTITY(在庫量)列で構成されるビュー表として,VSTOCK表を作成しています。
(a) 更新可能ビュー表と読み取り専用ビュー表
ビュー表には,次に示す2種類があります。ビュー表の定義方法によって,更新可能ビュー表または読み取り専用ビュー表のどちらかになります。
(b) ビュー表の基表について
ビュー表の基になる表を基表といいます。CREATE VIEW文の問合せ式本体中に指定した表が基表になります。基表には,実表,ビュー表,ディクショナリ表,およびシステム表を指定できます。
- ■ビューレベルとは
-
定義したビュー表が,実表から何番目の階層になるのかを示す値のことです。ビューレベルの例を次の図に示します。
図2‒2 ビューレベルの例 - [説明]
-
-
ビュー表V1の基表はすべて実表のため,ビュー表V1のビューレベルは1になります。
-
ビュー表V2の基表は実表とビューレベル1のビュー表のため,ビュー表V2のビューレベルは2になります。
-
ビュー表V3の基表は実表のため,ビュー表V3のビューレベルは1になります。
-
ビュー表V4の基表は,ビューレベル2のビュー表とビューレベル1のビュー表のため,ビュー表V4のビューレベルは3になります。
-
- 参考
-
ディクショナリ表およびシステム表は,ビューレベル1のビュー表として扱われます。
(c) ビュー表の無効化
実表またはビュー表に対して,次に示す操作を実行した場合,操作対象の表に依存するすべてのビュー表が無効化されます。
-
DROP TABLE文(削除動作の指定を省略)で実表を削除した場合
この場合,削除した実表に依存するすべてのビュー表が無効化されます。
-
DROP VIEW文(削除動作の指定を省略)でビュー表を削除した場合
この場合,削除したビュー表に依存するすべてのビュー表が無効化されます。
-
ALTER TABLE文で実表の列名を変更した場合
この場合,列名を変更した実表に依存するすべてのビュー表が無効化されます。
-
ALTER TABLE文で,レギュラーマルチチャンク表をアーカイブマルチチャンク表に変更した場合
この場合,アーカイブマルチチャンク表に変更した表に依存するすべてのビュー表が無効化されます。
-
ALTER TABLE文で,アーカイブマルチチャンク表をレギュラーマルチチャンク表に変更した場合
この場合,レギュラーマルチチャンク表に変更した表に依存するすべてのビュー表が無効化されます。
-
REVOKE文で表に対するSELECT権限を取り消した場合※
この場合,SELECT権限を取り消した表に依存するすべてのビュー表が無効化されます。
- 注※
-
認可識別子を指定して与えたSELECT権限と,PUBLIC指定で与えたSELECT権限の両方が取り消された場合が該当します。
- ■ビュー表の無効化とは
-
ビュー表に対するアクセスができなくなる状態のことを,ビュー表の無効化といいます。ビュー表の無効化を解除してビュー表に再びアクセスできるようにするには,いったんビュー表を削除したあとに,ビュー表を再定義する必要があります。
- ■依存するビュー表とは
-
上記の1.〜6.の操作によって,影響を受けるビュー表のことです。依存するビュー表の例を次の図に示します。
図2‒3 依存するビュー表の例 - [説明]
-
-
実表T1に依存するビュー表は,ビュー表V1,V2,V4になります。
-
実表T2に依存するビュー表は,ビュー表V1,V2,V4になります。
-
実表T3に依存するビュー表は,ビュー表V2,V4になります。
-
実表T4に依存するビュー表は,ビュー表V3,V4になります。
-
ビュー表V1に依存するビュー表は,ビュー表V2,V4になります。
-
ビュー表V2に依存するビュー表は,ビュー表V4になります。
-
ビュー表V3に依存するビュー表は,ビュー表V4になります。
-
ビュー表V4に依存するビュー表はありません。
-