11.11.2 SDBデータベースの定義例(4V DAMの場合)
4V DAMのSDBデータベースを定義する場合の定義例を次に示します。
- 〈この項の構成〉
(1) データベースの階層構造
作成する4V DAMのSDBデータベースの階層構造の概要を次の図に示します。
(2) データベースの格納構造
- 作成する4V DAMのSDBデータベースの格納構造の概要を次の図に示します。
-
図11‒22 作成する4V DAMのSDBデータベースの格納構造
(3) 各レコード型のキーおよびキー構成
作成する4V DAMのSDBデータベースの,各レコード型のキーおよびキー構成を次の図に示します。
(4) SDBデータベース定義の定義例
SDBデータベース定義の定義例(*ENTRY DICTIONARY文の指定例)を次に示します。
*ENTRY DICTIONARY SCHEMA DAM01 /* データベース名(DAM01) */ DBTYPE 4V DAM /* SDBデータベース種別 */ RECORD REC0 /* 仮想ルートレコード型名(REC0)*/ 2 DBKEY_L1 CHARACTER 5 TYPE D,L /* DB名 ┐ */ 2 DBKEY_L2 XCHARACTER 1 TYPE K,L /* 科目 │※ */ 2 DBKEY_L3 XCHARACTER 1 TYPE K,L /* 店番 │ */ 2 DBKEY_L4 CHARACTER 3 TYPE K,R /* 区分 ┘ */ RECORD REC1 /* レコード型名(REC1) */ 2 DBKEY_L1 CHARACTER 5 TYPE D,L /* DB名 */ 2 DBKEY /* インデクス対応のキー情報 */ 3 DBKEY_L2 XCHARACTER 1 TYPE K,L /* 科目 */ 3 DBKEY_L3 XCHARACTER 1 TYPE K,L /* 店番 */ 3 DBKEY_L4 CHARACTER 3 TYPE K,R /* 区分(レコード分割キー) */ 3 DBKEY_LN INTEGER TYPE K,N /* 一連番号あり */ 2 USERD10 CHARACTER 20 TYPE U,D /* ユーザデータ */ RECORD REC2 /* レコード型名(REC2) */ 2 DBKEY_L1 CHARACTER 5 TYPE D,L /* DB名 */ 2 DBKEY /* インデクス対応のキー情報 */ 3 DBKEY_L2 XCHARACTER 1 TYPE K,L /* 科目 */ 3 DBKEY_L3 XCHARACTER 1 TYPE K,L /* 店番 */ 3 DBKEY_L4 CHARACTER 3 TYPE K,R /* 区分(レコード分割キー) */ 3 DBKEY_LN INTEGER TYPE K,N /* 自一連番号あり */ 2 USERD20 CHARACTER 20 TYPE U,D /* ユーザデータ */ RECORD REC3 /* レコード型名(REC3) */ 2 DBKEY_L1 CHARACTER 5 TYPE D,L /* DB名 */ 2 DBKEY /* インデクス対応のキー情報 */ 3 DBKEY_L2 XCHARACTER 1 TYPE K,L /* 科目 */ 3 DBKEY_L3 XCHARACTER 1 TYPE K,L /* 店番 */ 3 DBKEY_L4 CHARACTER 3 TYPE K,R /* 区分(レコード分割キー) */ 3 DBKEY_LN INTEGER TYPE K,N /* 自一連番号あり */ 2 USERD30 CHARACTER 10 TYPE U,D /* ユーザデータ */ SET SET1 /* 親子集合(SET1) */ OWNER REC0 /* 親レコードの指定 */ ORDER LAST MEMBER REC1 /* 子レコードの指定 */ INSERTION AUTOMATIC RETENTION FIXED SETOPTION /* SETオプション */ OCCURRENCE NUMBER 20 /* 一連番号あり */ SET SET2 /* 親子集合(SET2) */ OWNER REC0 /* 親レコードの指定 */ ORDER LAST MEMBER REC2 /* 子レコードの指定 */ INSERTION AUTOMATIC RETENTION FIXED SETOPTION /* SETオプション */ OCCURRENCE NUMBER 20 /* 一連番号あり */ SET SET3 /* 親子集合(SET3) */ OWNER REC0 /* 親レコードの指定 */ ORDER LAST MEMBER REC3 /* 子レコードの指定 */ INSERTION AUTOMATIC RETENTION FIXED SETOPTION /* SETオプション */ OCCURRENCE NUMBER 20 /* 一連番号あり */ SDBOPTION /* SDBオプション */ FUNCTION REFER USE /* 検索の指定 */ ADD USE /* 追加の指定 */ UPDATE USE /* 更新の指定 */ ERASE NOUSE /* 削除の指定 */ ALLERASE NOUSE /* 一括削除の指定 */ DBLODUTL USE /* HiRDB/SDデータベース作成ユティリティ */ FORMAT NOUSE /* フォーマットライトの指定 */ END SCHEMA
- 注※
-
シーケンシャルインデクスの構成要素となります。
(5) SDBデータベース格納定義の定義例
SDBデータベース格納定義例(*ENTRY DICTIONARY文の指定例)を次に示します。
*ENTRY DICTIONARY STORAGE SCHEMA DAM01 FOR DAM01 /* SDBデータベース格納名(DAM01) */ /* FOR SDBデータベース名(DAM01) */ DBTYPE 4V /* SDBデータベース種別 */ STORAGE RECORD REC0 /* 格納レコード名(REC0) */ SEQUENTIAL REC0_SI FOR RECORD /* シーケンシャルインデクス名(REC0_SI) */ ORDER KEY ASCENDING DBKEY_L1, DBKEY_L2, DBKEY_L3, DBKEY_L4 WITHIN DAMX01_I /* シーケンシャルインデクス用RDエリア */ WITHIN DAMX01 /* 格納レコード用RDエリア */ STORAGE RECORD REC1 /* 格納レコード名(REC1) */ CLUSTERED SET1 WITHIN DAMX01 /* 格納レコード用RDエリア */ SECONDARY INDEX REC1_SI1 /* 二次インデクス名(REC1_SI1) */ ORDER KEY ASCENDING DBKEY_L1, DBKEY_L2, DBKEY_L3, DBKEY_L4, DBKEY_LN WITHIN DAMX01_I /* 二次インデクス用RDエリア */ STORAGE RECORD REC2 /* 格納レコード名(REC2) */ CLUSTERED SET2 WITHIN DAMX01 /* 格納レコード用RDエリア */ SECONDARY INDEX REC2_SI1 /* 二次インデクス名(REC2_SI1) */ ORDER KEY ASCENDING DBKEY_L1, DBKEY_L2, DBKEY_L3, DBKEY_L4, DBKEY_LN WITHIN DAMX01_I /* 二次インデクス用RDエリア */ STORAGE RECORD REC3 /* 格納レコード名(REC3) */ CLUSTERED SET3 WITHIN DAMX01 /* 格納レコード用RDエリア */ SECONDARY INDEX REC3_SI1 /* 二次インデクス名(REC3_SI1) */ ORDER KEY ASCENDING DBKEY_L1, DBKEY_L2, DBKEY_L3, DBKEY_L4, DBKEY_LN WITHIN DAMX01_I /* 二次インデクス用RDエリア */ SET SET1 /* 親子集合(SET1) */ OWNER POINTER FOR FIRST LAST MEMBER /* 子(REC1)へのポインタ定義 */ MEMBER POINTER FOR NEXT PRIOR TENANT /* 子の兄弟ポインタ定義 */ SET SET2 /* 親子集合(SET2) */ OWNER POINTER FOR FIRST LAST MEMBER /* 子(REC2)へのポインタ定義 */ MEMBER POINTER FOR NEXT PRIOR TENANT /* 子の兄弟ポインタ定義 */ SET SET3 /* 親子集合(SET3) */ OWNER POINTER FOR FIRST LAST MEMBER /* 子(REC3)へのポインタ定義 */ MEMBER POINTER FOR NEXT PRIOR TENANT /* 子の兄弟ポインタ定義 */ SDBOPTION /* SDBオプション */ KEYDEF DBKEY_L1 /* キー値(区分)とレコードの */ DATA 'DAM01' /* 対応関係を指定する。 */ KEYDEF DBKEY_L2 /* 仮想ルートレコード型のキーと */ DATA X'C1' /* キー値を指定する */ KEYDEF DBKEY_L3 DATA X'10' KEYDEF DBKEY_L4 /* レコード分割キー */ DATA '101',REC1 DATA '102',REC2 DATA '103',REC3 END STORAGE SCHEMA
(6) SDBディレクトリ情報の追加例
SDBディレクトリ情報の追加例(*ENTRY DIRECTORY文の指定例)を次に示します。
*ENTRY DIRECTORY DBSCHM DAM01