Hitachi

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


付録B.1 ディクショナリ表の概要

ディクショナリ表には,表およびインデクスの定義情報や,DBエリアの情報が格納されています。

ディクショナリ表は,実表とビュー表の2種類があります。

ディクショナリ表(実表)とディクショナリ表の関係を次の図に示します。

図B‒1 ディクショナリ表(実表)とディクショナリ表の関係

[図データ]

[説明]

表およびインデクスの定義情報や,DBエリアの情報は,ディクショナリ表(実表)に格納されます。ディクショナリ表(実表)から検索用に作成されるビュー表が,ディクショナリ表になります。

HADBユーザは,ディクショナリ表を検索できます。しかし,ディクショナリ表(実表)は検索できません。

HADBユーザがSELECT文でディクショナリ表を検索すると,表およびインデクスの定義情報や,DBエリアの情報を確認できます。ディクショナリ表を検索する場合は,スキーマ名にMASTERを指定してください。

〈この項の構成〉

(1) ディクショナリ表の一覧

ディクショナリ表の一覧を次の表に示します。

表B‒1 ディクショナリ表の一覧

項番

ディクショナリ表の名称

格納されている情報

ディクショナリ表に対応するディクショナリ表(実表)の表ID

ビュー定義に含まれる副問合せの数

外への参照の有無

1

SQL_TABLES

実表,ビュー表,ディクショナリ表(実表),システム表(実表),ディクショナリ表,およびシステム表の表定義情報が格納されています。1行に1表分の情報が格納されています。

0x00020001

1

2

SQL_COLUMNS

実表,ビュー表,ディクショナリ表(実表),システム表(実表),ディクショナリ表,およびシステム表の列の定義情報が格納されています。1行に1列分の情報が格納されています。

0x00020002

1

3

SQL_DIV_TABLE

実表,ディクショナリ表(実表),およびシステム表(実表)を格納しているDBエリアなどの情報が格納されています。1行に1表分の情報が格納されています。

0x00020004

1

4

SQL_INDEXES

実表のインデクスの定義情報が格納されています。また,ディクショナリ表(実表),およびシステム表(実表)のB-treeインデクスの定義情報も格納されています。1行に1インデクス分の情報が格納されています。

0x00020003

1

5

SQL_DIV_INDEX

実表のインデクスが格納されているDBエリアなどの情報が格納されています。また,ディクショナリ表(実表),およびシステム表(実表)のB-treeインデクスが格納されているDBエリアなどの情報も格納されています。1行に1インデクス分の情報が格納されています。

0x00020005

1

6

SQL_DBAREAS

DBエリアの定義情報が格納されています。1行に1DBエリア分の情報が格納されています。

0x00020006

0

×

7

SQL_SCHEMATA

スキーマに関する定義情報が格納されています。1行に1スキーマ分の情報が格納されています。

0x00020007

1

8

SQL_VIEWS

ビュー表の定義情報が格納されています。1行に1ビュー表分が格納されています。

0x00020008

1

9

SQL_VIEW_TABLE_USAGE

ビュー表の基表の情報が格納されています。1行に1基表分の情報が格納されています。

0x00020009

1

10

SQL_VIEW_OBJECT

システムが使用する情報が格納されています。

なお,ディクショナリ表は存在しません。ディクショナリ表(実表)だけ存在します。

0x0002000A

11

SQL_DEFINE_SOURCE

SQL文の情報が格納されています。1行に1SQLテキスト分の情報が格納されています。

0x0002000B

1

12

SQL_DEFINE_ENVIRONMENT

ビュー定義時の環境情報が格納されています。1行に定義時の1環境分の情報が格納されています。

0x0002000C

1

13

SQL_USERS

HADBユーザの情報が格納されています。1行に1HADBユーザの情報が格納されています。

0x0002000D

0

×

14

SQL_TABLE_CONSTRAINTS

実表の制約に関する情報が格納されています。1行に1制約分の情報が格納されています。

0x0002000E

1

15

SQL_INDEX_COLINF

インデクス構成列に関する情報が格納されています。1行にインデクス構成列1列分の情報が格納されています。

0x0002000F

1

16

SQL_KEY_COLUMN_USAGE

主キーと外部キーの構成列に関する情報が格納されています。1行に主キーと外部キーの構成列1列分の情報が格納されています。

0x00020010

1

17

SQL_REFERENTIAL_CONSTRAINTS

参照制約に関する情報が格納されています。1行に1参照制約分の情報が格納されています。

0x00020011

1

18

SQL_TABLE_PRIVILEGES

表に対するアクセス権限に関する情報が格納されています。1行に,ある権限付与者が与えた1認可識別子の1表分の情報が格納されています。

0x00020012

0

×

(凡例)

○:ディクショナリ表のビュー定義に,外への参照を行う副問合せを含みます。そのため,該当するディクショナリ表は,マルチ集合値式の副問合せに指定できません。

×:ディクショナリ表のビュー定義に,外への参照を行う副問合せを含みません。

−:該当しません。

注※

該当するディクショナリ表をSQL文の副問合せに指定した場合に,副問合せの入れ子の数として加算する必要がある数を示しています。

参考
  • ディクショナリ表中には,ディクショナリ表の表定義情報およびインデクス定義情報も格納されています。

  • ディクショナリ表のデータ型は,HADBのSQLの仕様に従っています。

(2) ディクショナリ表が作成されるタイミング

ディクショナリ表は,次に示すタイミングで自動的に作成されます。

(3) HADBユーザが参照できるディクショナリ表の範囲

HADBユーザがディクショナリ表を参照する際,持っている権限によって参照できる情報が異なります。HADBユーザが参照できるディクショナリ表の情報を次の表に示します。

なお,ディクショナリ表を基表に指定したビュー表の場合も,持っている権限によって参照できる情報が異なります。そのため,同じビュー表を検索しても,ビュー表を定義したHADBユーザと,ビュー表に対するアクセス権限を付与されたHADBユーザでは,アクセスできる情報が異なることがあります。

表B‒2 HADBユーザが参照できるディクショナリ表の情報

項番

ディクショナリ表の名称

HADBユーザが参照できる情報

1

SQL_TABLES

DBA権限を持っているHADBユーザ

すべてのHADBユーザが定義した表の情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義した表の情報を確認できます。

また,次に示す表の情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となる表

  • PUBLIC指定で許可された表

  • スキーマ名がMASTERの表

2

SQL_COLUMNS

DBA権限を持っているHADBユーザ

すべてのHADBユーザが定義した表の列情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義した表の列情報を確認できます。

また,次に示す表の列情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となる表

  • PUBLIC指定で許可された表

  • スキーマ名がMASTERの表

3

SQL_DIV_TABLE

DBA権限を持っているHADBユーザ

すべてのHADBユーザが定義した表を格納しているDBエリアの情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義した表を格納しているDBエリアの情報を確認できます。

また,次に示す表が格納されているDBエリアの情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となる表

  • PUBLIC指定で許可された表

  • スキーマ名がMASTERの表

4

SQL_INDEXES

DBA権限を持っているHADBユーザ

すべてのHADBユーザが定義したインデクスの情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義したインデクスの情報を確認できます。

また,次に示す表に定義されたインデクスの情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となる表

  • PUBLIC指定で許可された表

  • スキーマ名がMASTERの表

5

SQL_DIV_INDEX

DBA権限を持っているHADBユーザ

すべてのHADBユーザが定義したインデクスを格納しているDBエリアの情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義したインデクスを格納しているDBエリアの情報を確認できます。

また,次に示す表に定義されたインデクスが格納されているDBエリアの情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となる表

  • PUBLIC指定で許可された表

  • スキーマ名がMASTERの表

6

SQL_DBAREAS

CONNECT権限を持っているHADBユーザは,DBA権限とアクセス権限の有無に関係なく,すべてのDBエリアの定義情報を確認できます。

7

SQL_SCHEMATA

DBA権限を持っているHADBユーザ

すべてのHADBユーザが定義したスキーマの情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義したスキーマの情報を確認できます。

また,次に示す表を包括しているスキーマの情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となる表

  • PUBLIC指定で許可された表

  • スキーマ名がMASTERの表

8

SQL_VIEWS

DBA権限を持っているHADBユーザ

すべてのHADBユーザが定義したビュー表の情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義したビュー表の情報を確認できます。

また,次に示す表の情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となるビュー表

  • PUBLIC指定で許可されたビュー表

  • スキーマ名がMASTERの表

9

SQL_VIEW_TABLE_USAGE

DBA権限を持っているHADBユーザ

すべてのHADBユーザがビュー定義で使用する基表の情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)がビュー定義で使用する基表の情報を確認できます。

また,次に示す表の定義時に使用する基表の情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となるビュー表

  • PUBLIC指定で許可されたビュー表

  • スキーマ名がMASTERの表

10

SQL_DEFINE_SOURCE

DBA権限を持っているHADBユーザ

すべてのHADBユーザがビュー定義で入力したSQL文の情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)がビュー定義で入力したSQL文の情報を確認できます。

また,次に示す表の定義時に入力されたSQL文の情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となるビュー表

  • PUBLIC指定で許可されたビュー表

11

SQL_DEFINE_ENVIRONMENT

DBA権限を持っているHADBユーザ

すべてのHADBユーザがビュー定義したときの環境情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)がビュー定義したときの環境情報を確認できます。

また,次に示す表が定義されたときの環境情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となるビュー表

  • PUBLIC指定で許可されたビュー表

  • スキーマ名がMASTERの表

12

SQL_USERS

DBA権限を持っているHADBユーザ

すべてのHADBユーザの情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)の情報を確認できます。

13

SQL_TABLE_CONSTRAINTS

DBA権限を持っているHADBユーザ

すべてのHADBユーザが実表の定義時に指定した制約の情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)が実表の定義時に指定した制約の情報を確認できます。

また,次に示す表の定義時に指定された制約の情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となる実表

  • PUBLIC指定で許可された実表

  • スキーマ名がMASTERの表

14

SQL_INDEX_COLINF

DBA権限を持っているHADBユーザ

すべてのHADBユーザが定義したインデクスの,インデクス構成列の情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義したインデクスの,インデクス構成列の情報を確認できます。

また,次に示す表に定義されたインデクスの,インデクス構成列の情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となる実表

  • PUBLIC指定で許可された実表

  • スキーマ名がMASTERの表

15

SQL_KEY_COLUMN_USAGE

DBA権限を持っているHADBユーザ

すべてのHADBユーザが定義した主キー・外部キーの構成列の情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義した主キー・外部キーの構成列の情報を確認できます。

また,次に示す表に定義された主キー・外部キーの構成列の情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となる実表

  • PUBLIC指定で許可された実表

  • スキーマ名がMASTERの表

16

SQL_REFERENTIAL_CONSTRAINTS

DBA権限を持っているHADBユーザ

すべてのHADBユーザが定義した参照制約の情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義した参照制約の情報を確認できます。

また,次に示す表に定義された参照制約の情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となる表

  • PUBLIC指定で許可された表

  • スキーマ名がMASTERの表

17

SQL_TABLE_PRIVILEGES

DBA権限を持っているHADBユーザ

すべてのHADBユーザが定義した表に対するアクセス権限の情報を確認できます。

DBA権限を持っていないHADBユーザ

自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義した表に対するアクセス権限の情報を確認できます。

また,次に示す表に対するアクセス権限の情報も確認できます。

  • ほかのHADBユーザによって付与されたアクセス権限の対象となる表

  • PUBLIC指定で許可された表