11.11.3 SDBデータベースの定義例(SD FMBの場合)
SD FMBのSDBデータベースを定義する場合の定義例を次に示します。
- 〈この項の構成〉
(1) データベースの階層構造
作成するSD FMBのSDBデータベースの階層構造の概要を次の図に示します。
(2) データベースの格納構造
- 作成するSD FMBのSDBデータベースの格納構造の概要を次の図に示します。
-
図11‒25 作成するSD FMBのSDBデータベースの格納構造
(3) 各レコード型のキーおよびキー構成
作成するSD FMBのSDBデータベースの,各レコード型のキーおよびキー構成を次の図に示します。
(4) SDBデータベース定義の定義例
SDBデータベース定義の定義例(*ENTRY DICTIONARY文の指定例)を次に示します。
*ENTRY DICTIONARY SCHEMA FMB01 /* SDBデータベース名(FMB01)*/ DBTYPE SD FMB /* SDBデータベース種別 */ RECORD RECA /* レコード型名(RECA) */ 2 KEYDATA 3 KEYDATA_L2 XCHARACTER 1 TYPE K,L /* 科目 ┐※ */ 3 KEYDATA_L3 XCHARACTER 1 TYPE K,L /* 店番 │ */ 3 KEYDATA_L4 CHARACTER 3 TYPE K,L /* 顧客番号┘ */ 2 USERDA0 CHARACTER 30 TYPE U,D /* ユーザデータ */ 2 USERDANO CHARACTER 10 TYPE U,D /* ユーザデータ */ RECORD RECB /* レコード型名(RECB) */ 2 KEYDATA_L2 XCHARACTER 1 TYPE K,L /* 科目 */ 2 KEYDATA_L3 XCHARACTER 1 TYPE K,L /* 店番 */ 2 KEYDATA_L4 CHARACTER 3 TYPE K,L /* 顧客番号 */ 2 DBKEY INTEGER TYPE K,N /* 一連番号属性あり */ 2 USERDB0 CHARACTER 20 TYPE U,D /* ユーザデータ */ RECORD RECC /* レコード型名(RECC) */ 2 KEYDATA_L2 XCHARACTER 1 TYPE K,L /* 科目 */ 2 KEYDATA_L3 XCHARACTER 1 TYPE K,L /* 店番 */ 2 KEYDATA_L4 CHARACTER 3 TYPE K,L /* 顧客番号 */ 2 DBKEY INTEGER TYPE K,N /* 一連番号属性あり */ 2 USERDC0 CHARACTER 10 TYPE U,D /* ユーザデータ */ 2 USERDC1 CHARACTER 10 TYPE U,D /* ユーザデータ */ 2 USERDC2 CHARACTER 10 TYPE U,D /* ユーザデータ */ RECORD RECD /* レコード型名(RECD) */ 2 KEYDATA_L2 XCHARACTER 1 TYPE K,L /* 科目 */ 2 KEYDATA_L3 XCHARACTER 1 TYPE K,L /* 店番 */ 2 KEYDATA_L4 CHARACTER 3 TYPE K,L /* 顧客番号 */ 2 DBKEY_P2 INTEGER TYPE K,P /* 上位の一連番号(RECC用) */ 2 DBKEY INTEGER TYPE K,N /* 一連番号属性あり */ 2 USERDD0 CHARACTER 10 TYPE U,D /* ユーザデータ */ 2 USERDD1 CHARACTER 10 TYPE U,D /* ユーザデータ */ 2 USERDD2 CHARACTER 10 TYPE U,D /* ユーザデータ */ RECORD RECE /* レコード型名(RECE) */ 2 KEYDATA_L2 XCHARACTER 1 TYPE K,L /* 科目 */ 2 KEYDATA_L3 XCHARACTER 1 TYPE K,L /* 店番 */ 2 KEYDATA_L4 CHARACTER 3 TYPE K,L /* 顧客番号 */ 2 DBKEY_P2 INTEGER TYPE K,P /* 上位の一連番号(RECC用) */ 2 DBKEY_P3 INTEGER TYPE K,P /* 上位の一連番号(RECD用) */ 2 DBKEY INTEGER TYPE K,N /* 一連番号属性あり */ 2 USERDE0 CHARACTER 10 TYPE U,D /* ユーザデータ */ 2 USERDE2 CHARACTER 10 TYPE U,D /* ユーザデータ */ SET SET1 /* 親子集合(SET1) */ OWNER RECA /* 親レコードの指定 */ ORDER SORTED DUPLICATES PROHIBITED MEMBER RECB /* 子レコードの指定 */ INSERTION AUTOMATIC RETENTION FIXED KEY ASCENDING USERDB0 SET SET2 /* 親子集合(SET2) */ OWNER RECA /* 親レコードの指定 */ ORDER LAST MEMBER RECC /* 子レコードの指定 */ INSERTION AUTOMATIC RETENTION FIXED SET SET3 /* 親子集合(SET3) */ OWNER RECC /* 子レコードの指定 */ ORDER LAST MEMBER RECD /* 孫レコードの指定 */ INSERTION AUTOMATIC RETENTION FIXED SET SET4 /* 親子集合(SET4) */ OWNER RECD /* 孫レコードの指定 */ ORDER LAST MEMBER RECE /* ひ孫レコードの指定 */ INSERTION AUTOMATIC RETENTION FIXED END SCHEMA
- 注※
-
シーケンシャルインデクスの構成要素となります。
(5) SDBデータベース格納定義の定義例
SDBデータベース格納定義例(*ENTRY DICTIONARY文の指定例)を次に示します。
*ENTRY DICTIONARY STORAGE SCHEMA FMB01 FOR FMB01 /* SDBデータベース格納名(FMB01)*/ /* FOR SDBデータベース名(FMB01)*/ DBTYPE SD /* SDBデータベース種別 */ STORAGE RECORD RECA /* 格納レコード名(RECA) */ SEQUENTIAL RECA_SI FOR RECORD /* シーケンシャルインデクス名(RECA_SI) */ ORDER KEY ASCENDING KEYDATA_L2,KEYDATA_L3,KEYDATA_L4 WITHIN FMBX01_I /* シーケンシャルインデクス用RDエリア名 */ WITHIN FMBX01 /* 格納レコード用RDエリア名 */ STORAGE RECORD RECB /* 格納レコード名(RECB) */ CLUSTERED SET1 WITHIN FMBX01 /* 格納レコード用RDエリア */ STORAGE RECORD RECC /* 格納レコード名(RECC) */ CLUSTERED SET2 WITHIN FMBX01 /* 格納レコード用RDエリア */ SECONDARY INDEX RECC_SI1 /* 二次インデクス名(REC1_SI1) */ USED FOR RECORD ORDER KEY ASCENDING DBKEY_L2, DBKEY_L3, USERDC1 WITHIN FMBX01_I /* 二次インデクス用RDエリア */ STORAGE RECORD RECD /* 格納レコード名(RECD) */ CLUSTERED SET3 WITHIN FMBX01 /* 格納レコード用RDエリア */ STORAGE RECORD RECE /* 格納レコード名(RECE) */ CLUSTERED SET4 WITHIN FMBX01 /* 格納レコード用RDエリア */ SET SET1 /* 親子集合(SET1) */ OWNER POINTER FOR FIRST LAST MEMBER /* 子(RECB)へのポインタ */ MEMBER POINTER FOR NEXT PRIOR TENANT /* 子の兄弟ポインタ */ SET SET2 /* 親子集合(SET2) */ OWNER POINTER FOR FIRST LAST MEMBER /* 子(RECC)へのポインタ */ MEMBER POINTER FOR OWNER NEXT PRIOR TENANT /* 親ポインタおよび子の兄弟ポインタ */ SET SET3 /* 親子集合(SET3) */ OWNER POINTER FOR FIRST LAST MEMBER /* 孫(RECD)へのポインタ */ MEMBER POINTER FOR NEXT PRIOR TENANT /* 孫の兄弟ポインタ定義 */ SET SET4 /* 親子集合(SET4) */ OWNER POINTER FOR FIRST LAST MEMBER /* ひ孫(RECE)へのポインタ */ MEMBER POINTER FOR NEXT PRIOR TENANT /* ひ孫の兄弟ポインタ */ END STORAGE SCHEMA
(6) SDBディレクトリ情報の追加例
SDBディレクトリ情報の追加例(*ENTRY DIRECTORY文の指定例)を次に示します。
*ENTRY DIRECTORY DBSCHM FMB01