スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド
HiRDBのデータディクショナリ表は,一般のHiRDBのデータベースと同様に,操作系のSQLで参照できます。なお,ディクショナリ表の認可識別子はMASTERとなります。
ここでは,検索時のSQLの記述例と,参照するために必要な定義情報について説明します。
参照するデータディクショナリ表の一覧を次の表に示します。
| 項番 | 表 名 | 内 容 | 情 報 量 (1行当たり) |
|---|---|---|---|
| 1 | SQL_PHYSICAL_FILES | HiRDBファイルの情報(HiRDBファイルシステム名,RDエリア名との対応関係) | 1HiRDBファイル分 |
| 2 | SQL_RDAREAS | RDエリア名称,定義情報,RDエリア種別,格納表数,インデクス数などの情報 | 1RDエリア分 |
| 3 | SQL_TABLES | データベース中の各表(ディクショナリ表を含む)の所有者名,表名 | 1表分 |
| 4 | SQL_COLUMNS | 列に関する列名,データ型などの定義情報 | 1列分 |
| 5 | SQL_INDEXES | データベース中の各インデクス(ディクショナリ表を含む)の所有者名,インデクス名 | 1インデクス分 |
| 6 | SQL_USERS | ユーザの実行権限,及びデータベースに対するアクセスを許可したユーザの認可識別子 | 1ユーザ分 |
| 7 | SQL_RDAREA_PRIVILEGES | RDエリア利用権限の許可状況 | 1認可識別子の1RDエリア分 |
| 8 | SQL_TABLE_PRIVILEGES | 表に対するアクセス権限の付与状況 | 1認可識別子の1表分 |
| 9 | SQL_VIEW_TABLE_USAGE | ビュー表の基の実表名 | 1ビュー表分 |
| 10 | SQL_VIEWS | ビュー定義情報 | 1ビュー表分 |
| 11 | SQL_DIV_TABLE | 表の分割情報(CREATE TABLE時に指定した分割条件,及び格納RDエリア名) | n行で1表分 |
| 12 | SQL_INDEX_COLINF | インデクスが定義された列名 | n行で1インデクス分 |
| 13 | SQL_DIV_INDEX | インデクスの分割情報(格納RDエリア名) | n行で1インデクス分 |
| 14 | SQL_DIV_COLUMN | BLOB型列の分割情報(CREATE TABLE時に指定した格納RDエリア名) | n行で1列分 |
| 15 | SQL_ROUTINES | ルーチン定義情報 | 1行で1ルーチン分 |
| 16 | SQL_ROUTINE_RESOURCES | ルーチン中の使用リソース情報 | n行で1ルーチン分 |
| 17 | SQL_ROUTINE_PARAMS | ルーチン中のパラメタ定義情報 | n行で1ルーチン分 |
| 18 | SQL_ALIASES | UNIX版の場合: 表の別名情報(CREATE ALIAS時に指定した表の別名,及び対象となる表の3部名) Windows版の場合: システムが使用する情報(内容は空となります) |
UNIX版の場合: 1別名分 Windows版の場合: なし |
| 19 | SQL_TABLE_STATISTICS | 表の統計情報 | 1表分 |
| 20 | SQL_COLUMN_STATISTICS | 列の統計情報 | 1列分 |
| 21 | SQL_INDEX_STATISTICS | インデクスの統計情報 | 1インデクス分 |
| 22 | SQL_DATATYPES | ユーザ定義型の情報 | 1ユーザ定義型分 |
| 23 | SQL_DATATYPE_DESCRIPTORS | ユーザ定義型の構成属性の情報 | 1属性分 |
| 24 | SQL_TABLE_RESOURCES | 表で使用するリソース情報 | 1リソース分 |
| 25 | SQL_PLUGINS | プラグイン情報 | 1プラグイン分 |
| 26 | SQL_PLUGIN_ROUTINES | プラグインのルーチン情報 | 1プラグインのルーチン分 |
| 27 | SQL_PLUGIN_ROUTINE_PARAMS | プラグインのルーチンのパラメタ情報 | 1パラメタ情報 |
| 28 | SQL_INDEX_TYPES | インデクス型の情報 | 1インデクス型分 |
| 29 | SQL_INDEX_RESOURCES | インデクスで使用するリソース情報 | 1リソース情報分 |
| 30 | SQL_INDEX_DATATYPE | インデクスの対象項目情報 | 1対象項目情報分(1段分) |
| 31 | SQL_INDEX_FUNCTION | インデクスで利用する抽象データ型関数の情報 | 一つの抽象データ型関数の情報分 |
| 32 | SQL_TYPE_RESOURCES | ユーザ定義型で使用するリソース情報 | 1リソース情報分 |
| 33 | SQL_INDEX_TYPE_FUNCTION | インデクス型を定義したインデクスで利用できる抽象データ型関数の情報 | n行で1インデクス型分 |
| 34 | SQL_EXCEPT | インデクスの除外キー値の情報 | n行で1インデクスの除外キー群 |
| 35 | SQL_FOREIGN_SERVERS | HiRDB External Data Access機能使用時にHiRDBがアクセスする外部サーバのDBMS情報 | 1行で1外部サーバ分 |
| 36 | SQL_USER_MAPPINGS | HiRDB External Data Access機能使用時に外部サーバをアクセスするときのマッピング情報 | 1行でHiRDB上の1ユーザに対する1マッピング情報 |
| 37 | SQL_IOS_GENERATIONS | UNIX版の場合: インナレプリカ機能使用時のHiRDBファイルシステム領域の世代情報 Windows版の場合: システムが使用する情報(内容は空となります) |
UNIX版の場合: 1行で1HiRDBファイルシステム領域分 Windows版の場合: なし |
| 38 | SQL_TRIGGERS | スキーマ内にあるトリガの情報 | 1行で1トリガ分 |
| 39 | SQL_TRIGGER_COLUMNS | UPDATEトリガの契機列リスト情報 | 1行で1契機列情報 |
| 40 | SQL_TRIGGER_DEF_SOURCE | トリガ定義ソース情報 | n行で1トリガ定義ソース情報 |
| 41 | SQL_TRIGGER_USAGE | トリガ動作条件中で参照している資源情報 | 1行で,トリガ動作条件中で参照している資源名称一つ |
| 42 | SQL_PARTKEY | マトリクス分割表の分割キーの情報 | 1行で1分割キー情報 |
| 43 | SQL_PARTKEY_DIVISION | マトリクス分割表の分割条件値の情報 | 1行で1分割条件値情報 |
| 44 | SQL_AUDITS | 監査対象の情報 | 1行で1オブジェクト又は1ユーザに対する1イベント分の情報 |
| 45 | SQL_REFERENTIAL_CONSTRAINTS | 参照制約の対応状況 | 1行で1制約分の情報 |
| 46 | SQL_KEYCOLUMN_USAGE | 外部キーを構成する列情報 | 1行で1列分の情報 |
| 47 | SQL_TABLE_CONSTRAINTS | スキーマ内にある整合性制約の情報 | 1行で1整合性制約分の情報 |
| 48 | SQL_CHECKS | 検査制約の情報 | 1行で1検査制約分の情報 |
| 49 | SQL_CHECK_COLUMNS | 検査制約で使用している列の情報 | 1行で一つの検査制約で使用している1列分の情報 |
| 50 | SQL_DIV_TYPE | キーレンジ分割とハッシュ分割を組み合わせたマトリクス分割表の分割キーの情報 | 1行で1分割キー数分の情報 |
| 51 | SQL_SYSPARAMS | 連続認証失敗回数制限,及びパスワードの文字列制限の情報 | 1行で1設定項目数分,n行で一つの連続認証失敗回数制限分,又は一つのパスワードの文字列制限分の情報 |
| 52 | SQL_INDEX_XMLINF | 部分構造インデクスの構成部分構造パス情報 | 1行で1インデクスの情報 |
| 53 | SQL_SEQUENCES | 順序数生成子の情報 | 1行で1順序数生成子分の情報 |
SELECT X.SERVER_NAME, PHYSICAL_FILE_NAME, X.RDAREA_NAME
FROM MASTER.SQL_PHYSICAL_FILES X, MASTER.SQL_RDAREAS Y
WHERE X.RDAREA_NAME=Y.RDAREA_NAME
ORDER BY X.SERVER_NAME
WITHOUT LOCK NOWAIT
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH
FROM MASTER.SQL_COLUMNS
WHERE TABLE_SCHEMA=USER※
ORDER BY TABLE_NAME
WITHOUT LOCK NOWAIT
SELECT TABLE_NAME, INDEX_NAME, FREE_AREA
FROM MASTER.SQL_INDEXES
WHERE TABLE_SCHEMA=USER※
ORDER BY TABLE_NAME
WITHOUT LOCK NOWAIT
SELECT TABLE_NAME, SELECT_PRIVILEGE, INSERT_PRIVILEGE,
DELETE_PRIVILEGE, UPDATE_PRIVILEGE
FROM MASTER.SQL_TABLE_PRIVILEGES
WHERE GRANTEE=USER※ OR GRANTEE='PUBLIC'
WITHOUT LOCK NOWAIT
SELECT COUNT(*) FROM MASTER.SQL_RDAREAS
WHERE RDAREA_TYPE='U' AND
RDAREA_NAME LIKE 'RD1%'
WITHOUT LOCK NOWAIT
SELECT RDAREA_NAME FROM MASTER.SQL_RDAREAS
WHERE RDAREA_TYPE='U' AND
RDAREA_NAME LIKE 'RD1%' ORDER BY RDAREA_NAME
WITHOUT LOCK NOWAIT
SELECT X.RDAREA_NAME
FROM MASTER.SQL_RDAREAS X, MASTER.SQL_TABLES Y
WHERE Y.TABLE_SCHEMA=USER※
AND Y.TABLE_NAME='T1'
AND X.RDAREA_NAME=Y.RDAREA_NAME
WITHOUT LOCK NOWAIT
SELECT RDAREA_NAME FROM MASTER.SQL_DIV_COLUMN
WHERE TABLE_SCHEMA='HiRDB'
AND TABLE_NAME='SQL_ROUTINES'
AND COLUMN_NAME='ROUTINE_OBJECT'
WITHOUT LOCK NOWAIT
SELECT ROUTINE_SCHEMA,ROUTINE_NAME
FROM MASTER.SQL_ROUTINES
WHERE ROUTINE_VALID='N'
OR INDEX_VALID='N'
WITHOUT LOCK NOWAIT
SELECT PARAMETER_NAME,DATA_TYPE,UDT_OWNER,UDT_NAME,PARAMETER_NO
FROM MASTER.SQL_ROUTINE_PARAMS
WHERE ROUTINE_SCHEMA=USER AND ROUTINE_NAME='FUNC1'
ORDER BY PARAMETER_NO
WITHOUT LOCK NOWAIT
非分割表の場合:
SELECT DISTINCT(RDAREA_NAME) FROM MASTER.SQL_TABLES
WHERE TABLE_SCHEMA=USERA AND RDAREA_NAME IS NOT NULL
WITHOUT LOCK NOWAIT
分割表の場合:
SELECT DISTINCT(RDAREA_NAME) FROM MASTER.SQL_DIV_TABLE
WHERE TABLE_SCHEMA=USERA
WITHOUT LOCK NOWAIT
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.