11.11.3 SDBデータベースの定義例(SD FMBの場合)
SD FMBのSDBデータベースを定義する場合の定義例を次に示します。
- 〈この項の構成〉
(1) データベースの階層構造
作成するSD FMBのSDBデータベースの階層構造の概要を次の図に示します。
|
|
(2) データベースの格納構造
- 作成するSD FMBのSDBデータベースの格納構造の概要を次の図に示します。
-
図11‒26 作成する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 KEYDATA_L2, KEYDATA_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