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