4.5.2 SDBデータベースの定義追加
実行者 CONNECT権限およびスキーマ定義権限保持者
SDBデータベースの定義追加の手順を次に示します。
(1) SDBデータベースのデータベース定義を作成する
SDBデータベースのデータベース定義を作成します。SDBデータベースのデータベース定義には,次の二種類があります。
-
SDBデータベース定義
SDBデータベースの論理構造(データ操作の対象となるレコード型やレコード間の親子集合など)を定義します。SDBデータベース定義については,次の個所を参照してください。
-
4V FMBのSDBデータベースを定義する場合
-
4V AFMのSDBデータベースを定義する場合
-
SD FMBのSDBデータベースを定義する場合
-
-
SDBデータベース格納定義
SDBデータベースの格納構造(インデクスの構成要素や親子集合を実現するためのポインタなど)を定義します。SDBデータベース格納定義については,次の個所を参照してください。
-
4V FMBのSDBデータベースを定義する場合
-
4V AFMのSDBデータベースを定義する場合
-
SD FMBのSDBデータベースを定義する場合
-
SDBデータベース定義,SDBデータベース格納定義は,SDB定義文ファイルに記述します。作成したSDB定義文ファイルをHiRDB/SD定義ユティリティ(pdsdbdef)のsource文に指定します。
(2) SDBディクショナリ情報およびSDBディレクトリ情報を追加する
HiRDB/SD定義ユティリティ(pdsdbdef)で*ENTRY DICTIONARY文および*ENTRY DIRECTORY文を実行し,定義追加するSDBデータベースのSDBディクショナリ情報およびSDBディレクトリ情報をディクショナリ表に追加します。(1)で作成したSDBデータベース定義およびSDBデータベース格納定義を*ENTRY DICTIONARY文に指定します。
*ENTRY DICTIONARY文については「11.4.2 *ENTRY DICTIONARY文(SDBディクショナリ情報の追加)」を参照してください。また,*ENTRY DIRECTORY文については「11.4.6 *ENTRY DIRECTORY文(SDBディレクトリ情報の追加)」を参照してください。
また,定義追加したSDBデータベースのレコード型およびインデクスの定義情報が,次のRDエリアに登録されます。
-
マスタディレクトリ用RDエリア
-
データディレクトリ用RDエリア
-
ユーザ用RDエリア
- 注意事項
-
*ENTRY DICTIONARY文および*ENTRY DIRECTORY文は,1回のpdsdbdefコマンドで実行してください。
- 理由:
-
*ENTRY DIRECTORY文の実行時には,データベース定義のチェックが実行されます。
*ENTRY DICTIONARY文および*ENTRY DIRECTORY文を1回のpdsdbdefコマンドで実行した場合,データベース定義の不整合が検知されると,SDBディクショナリ情報およびSDBディレクトリ情報はディクショナリ表に追加されません。この場合,データベース定義を修正して,pdsdbdefコマンドを再実行することで対処できます。
*ENTRY DICTIONARY文と*ENTRY DIRECTORY文を別々に実行した場合,*ENTRY DIRECTORY文の実行時には,すでにSDBディクショナリ情報はディクショナリ表に追加されています。そのため,データベース定義の不整合が検知された場合に,データベース定義を修正するには,*DELETE DICTIONARY文を実行してSDBディクショナリ情報を削除してから,pdsdbdefコマンドを再実行することになります。