クラスを追加する場合,追加するクラスの定義を記述した定義情報ファイルを作成します。そして,作成した定義情報ファイルを指定してメタ情報の追加コマンド(EDMAddMeta)で,メタ情報へのクラスの定義の追加,および追加するクラスに対応する表を作成するデータベース定義文の生成を実行します。
(1) クラスの追加手順
クラスを追加する手順を次に示します。
(2) メタ情報の追加コマンド(EDMAddMeta)が出力する定義系SQL
メタ情報の追加コマンド(EDMAddMeta)が出力する,HiRDBのデータベース定義ユティリティ(pddef)の入力となる定義系SQLを示します。下線が付いている個所は,メタ情報の追加コマンド(EDMAddMeta)が出力しない定義系SQLを示します。
(a) メタ情報の追加コマンド(EDMAddMeta)が出力する定義系SQL「CREATE TABLE」
CREATE 〔FIX〕 TABLE 〔認可識別子.〕表識別子(表要素〔,表要素〕…)
{IN{表格納用RDエリア名
|(表格納用RDエリア名)
|(〔(表格納用RDエリア名)格納条件,〕…
(表格納用RDエリア名)〔格納条件〕)}
|PARTITIONED BY 列名
IN(〔(表格納用RDエリア名)境界値,〕…
(表格納用RDエリア名)境界値,
(表格納用RDエリア名))
|〔FIX〕 HASH 〔ハッシュ関数名〕 BY 列名 〔,列名〕…
IN(表格納用RDエリア名,表格納用RDエリア名,…)}〕
〔表オプション〕…
〔表制約定義〕…
表要素::={列定義|表制約定義}
列定義::=列名 データ型〔ARRAY [最大要素数]〕
〔{列データ抑制指定|〔列回復制約〕
{IN {LOB列格納用RDエリア名
|(LOB列格納用RDエリア名)
|((LOB列格納用RDエリア名)
〔,(LOB列格納用RDエリア名)〕…)}
|抽象データ型定義内LOB格納用RDエリア指定}}〕
〔プラグイン指定〕
〔列制約…〕
列データ抑制指定::=〔SUPPRESS〕
列回復制約::=〔RECOVERY〔{ALL|PARTIAL|NO}〕〕
列制約::={非NULL値制約指定
|単一列一意性制約定義〔インデクスオプション〕…}
非NULL値制約指定::={〔NULL|NOT NULL〔WITH DEFAULT〕〕
|〔〔NOT NULL〕 WITH DEFAULT〕}
単一列一意性制約定義::=
〔UNIQUE〕 CLUSTER KEY〔{ASC|DESC}〕
〔IN{インデクス格納用RDエリア名
|(インデクス格納用RDエリア名)
|((インデクス格納用RDエリア名)
|〔,(インデクス格納用RDエリア名)〕…)}〕
インデクスオプション::={PCTFREE=未使用領域の比率
|UNBALANCED SPLIT}
表制約定義::=複数列一意制約定義
〔インデクスオプション〔インデクスオプション〕〕
複数列一意性制約定義::=
〔UNIQUE〕 CLUSTER KEY(列名〔{ASC|DESC}〕
〔,列名〔{ASC|DESC}〕〕…)
〔IN{インデクス格納用RDエリア名
|(インデクス格納用RDエリア名)
|((インデクス格納用RDエリア名)
〔,(インデクス格納用RDエリア名)〕…)}〕
格納条件::=列名{=|<>|^=|!=|<|>=|>|>=}
{定数|(定数〔,定数〕…)}
ハッシュ関数名::={HASH1|HASH2|HASH3|HASH4|HASH5|HASH6}
表オプション::=
PCTFREE={未使用領域の比率
|(〔未使用領域の比率〕,
セグメント内の空きページ比率)}
LOCK{ROW|PAGE}
SUPPRESS〔DEC〔IMAL〕〕
WITHOUT ROLLBACK
抽象データ型定義内LOB格納用RDエリア指定::=
ALLOCATE(属性名〔..属性名〕…
IN {LOB属性格納用RDエリア名
|(LOB属性格納用RDエリア名)
|((LOB属性格納用RDエリア名)
〔,(LOB属性格納用RDエリア名)〕)}
〔,属性名〔..属性名〕…
IN {LOB属性格納用RDエリア名
|(LOB属性格納用RDエリア名)
|((LOB属性格納用RDエリア名)
〔,(LOB属性格納用RDエリア名)〕)}〕…)
プラグイン指定::=PLUGIN プラグインオプション
(b) メタ情報の追加コマンド(EDMAddMeta)が出力する定義系SQL「CREATE INDEX 形式1」
CREATE 〔UNIQUE〕 INDEX 〔認可識別子.〕インデクス識別子
ON 〔認可識別子.〕表識別子(列名〔{ASC|DESC}〕
〔,列名〔{ASC|DESC}〕〕…)
〔IN{RDエリア名
|(RDエリア名)
|((RDエリア名)〔,(RDエリア名)〕…)}〕
〔インデクスオプション〕…
インデクスオプション::={PCTFREE=未使用領域の比率
|UNBALANCED SPLIT
|EMPTY
|除外値指定}
除外値指定::=EXCEPT VALUES (NULL〔,NULL〕…)
(c) メタ情報の追加コマンド(EDMAddMeta)が出力する定義系SQL「CREATE INDEX 形式2」
CREATE INDEX 〔認可識別子.〕インデクス識別子
USING TYPE 〔認可識別子.〕インデクス型識別子
ON 〔認可識別子.〕表識別子(列名)
IN{RDエリア名
|(RDエリア名)
|((RDエリア名)〔,(RDエリア名)〕…)}
〔PLUGIN プラグインオプション〕