Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


11.11.2 SDBデータベースの定義例(4V DAMの場合)

4V DAMのSDBデータベースを定義する場合の定義例を次に示します。

〈この項の構成〉

(1) データベースの階層構造

作成する4V DAMのSDBデータベースの階層構造の概要を次の図に示します。

図11‒21 作成する4V DAMのSDBデータベースの階層構造

[図データ]

(2) データベースの格納構造

作成する4V DAMのSDBデータベースの格納構造の概要を次の図に示します。
図11‒22 作成する4V DAMのSDBデータベースの格納構造

[図データ]

(3) 各レコード型のキーおよびキー構成

作成する4V DAMのSDBデータベースの,各レコード型のキーおよびキー構成を次の図に示します。

図11‒23 作成する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