Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


2.1.1 

HADBでは,表形式でデータを管理します。

一般的なリレーショナルデータベースと同様に,HADBの表は,行と列から構成されています。表の横方向を,縦方向をといいます。各行の同じ列には同じ形式のデータが格納されます。

1つの行は1つ以上の列から構成されています。行は表を操作するときの単位となります。

表には実表とビュー表があります。各表の詳細を次に示します。

〈この項の構成〉

(1) 実表

実表は,データベースに格納している実体がある表のことです。

実表には,シングルチャンク表とマルチチャンク表の2種類があります。実表の定義時に,どちらの種類の実表にするかを指定します。

チャンクおよびバックグラウンドインポート機能については,「2.12 バックグラウンドインポート機能」を参照してください。

チャンクアーカイブ機能については,「2.13 チャンクアーカイブ機能(チャンク内のデータの圧縮)」を参照してください。

ポイント

実表の種類と使用できる機能の関係を次の表に示します。

表2‒1 実表の種類と使用できる機能の関係

実表の種類

使用できる機能

バックグラウンドインポート機能

チャンクアーカイブ機能

シングルチャンク表

×

×

マルチチャンク表

レギュラーマルチチャンク表

×

アーカイブマルチチャンク表

(凡例)

○:使用できます。

×:使用できません。

(2) ビュー表

CREATE VIEW文に指定した問合せ式本体の結果を,新たな表として定義した仮想的な表をビュー表といいます。複数の表に対する集合演算の結果をビュー表として定義したり,表中の特定の行や列だけを取り出してビュー表として定義したりすることができます。

何度も指定される条件で検索した結果を,あらかじめビュー表として定義しておくことで,データベースを検索する操作が簡単になります。ビュー表の例を次の図に示します。

図2‒1 ビュー表の例

[図データ]

[説明]

実表の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) ビュー表の無効化

実表またはビュー表に対して,次に示す操作を実行した場合,操作対象の表に依存するすべてのビュー表が無効化されます。

  1. DROP TABLE文(削除動作の指定を省略)で実表を削除した場合

    この場合,削除した実表に依存するすべてのビュー表が無効化されます。

  2. DROP VIEW文(削除動作の指定を省略)でビュー表を削除した場合

    この場合,削除したビュー表に依存するすべてのビュー表が無効化されます。

  3. ALTER TABLE文で実表の列名を変更した場合

    この場合,列名を変更した実表に依存するすべてのビュー表が無効化されます。

  4. ALTER TABLE文で,レギュラーマルチチャンク表をアーカイブマルチチャンク表に変更した場合

    この場合,アーカイブマルチチャンク表に変更した表に依存するすべてのビュー表が無効化されます。

  5. ALTER TABLE文で,アーカイブマルチチャンク表をレギュラーマルチチャンク表に変更した場合

    この場合,レギュラーマルチチャンク表に変更した表に依存するすべてのビュー表が無効化されます。

  6. 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に依存するビュー表はありません。