Hitachi

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


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

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

〈この項の構成〉

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

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

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

[図データ]

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

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

[図データ]

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

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

図11‒20 作成する4V FMBのSDBデータベースの,各レコード型のキーおよびキー構成

[図データ]

(4) SDBデータベース定義の定義例

SDBデータベース定義の定義例(*ENTRY DICTIONARY文の指定例)を次に示します。

*ENTRY DICTIONARY
 SCHEMA FMB01                                 /* SDBデータベース名(FMB01)*/
 DBTYPE 4V FMB                                /* SDBデータベース種別     */
   RECORD RECA                                /* レコード型名(RECA)      */
     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,L    /* 顧客番号┘    */
     2 USERDA0     CHARACTER 30  TYPE  U,D    /* ユーザデータ            */
     2 USERDANO    CHARACTER 10  TYPE  U,F    /* ユーザファイル通番      */
     FUNCTION
       REFER     USE                          /* 検索の指定              */
       ADD       USE                          /* 追加の指定              */
       UPDATE    USE                          /* 更新の指定              */
       ERASE     NOUSE                        /* 削除の指定              */
       ALLERASE  NOUSE                        /* 一括削除の指定          */
   RECORD RECB                                /* レコード型名(RECB)      */
     2 DBKEY_L2  XCHARACTER 1    TYPE  K,L    /* 科目                    */
     2 DBKEY_L3  XCHARACTER 1    TYPE  K,L    /* 店番                    */
     2 DBKEY_L4  CHARACTER  3    TYPE  K,L    /* 顧客番号                */
     2 DBKEY     INTEGER         TYPE  N,N    /* 一連番号属性なし        */
     2 USERDB0   CHARACTER 20    TYPE  U,D    /* ユーザデータ            */
     FUNCTION
       REFER     USE                          /* 検索の指定              */
       ADD       USE                          /* 追加の指定              */
       UPDATE    USE                          /* 更新の指定              */
       ERASE     NOUSE                        /* 削除の指定              */
       ALLERASE  NOUSE                        /* 一括削除の指定          */
   RECORD RECC                                /* レコード型名(RECC)      */
     2 DBKEY_L2  XCHARACTER 1    TYPE  K,L    /* 科目                    */
     2 DBKEY_L3  XCHARACTER 1    TYPE  K,L    /* 店番                    */
     2 DBKEY_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,K    /* ユーザキー              */
     2 USERDC2   CHARACTER 10    TYPE  U,D    /* ユーザデータ            */
     FUNCTION
       REFER     USE                          /* 検索の指定              */
       ADD       USE                          /* 追加の指定              */
       UPDATE    USE                          /* 更新の指定              */
       ERASE     NOUSE                        /* 削除の指定              */
       ALLERASE  NOUSE                        /* 一括削除の指定          */
   RECORD RECD                                /* レコード型名(RECD)      */
     2 DBKEY_L2  XCHARACTER 1    TYPE  K,L    /* 科目                    */
     2 DBKEY_L3  XCHARACTER 1    TYPE  K,L    /* 店番                    */
     2 DBKEY_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,K    /* ユーザキー              */
     2 USERDD2   CHARACTER 10    TYPE  U,D    /* ユーザデータ            */
     FUNCTION
       REFER     USE                          /* 検索の指定              */
       ADD       USE                          /* 追加の指定              */
       UPDATE    USE                          /* 更新の指定              */
       ERASE     NOUSE                        /* 削除の指定              */
       ALLERASE  NOUSE                        /* 一括削除の指定          */
   RECORD RECE                                /* レコード型名(RECE)      */
     2 DBKEY_L2  XCHARACTER 1    TYPE  K,L    /* 科目                    */
     2 DBKEY_L3  XCHARACTER 1    TYPE  K,L    /* 店番                    */
     2 DBKEY_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  N,N    /* 一連番号属性なし        */
     2 USERDD0   CHARACTER 10    TYPE  U,D    /* ユーザデータ            */
     2 USERDD2   CHARACTER 10    TYPE  U,D    /* ユーザデータ            */
     FUNCTION
         REFER   USE                          /* 検索の指定              */
         ADD       USE                        /* 追加の指定              */
         UPDATE    USE                        /* 更新の指定              */
         ERASE     NOUSE                      /* 削除の指定              */
         ALLERASE  NOUSE                      /* 一括削除の指定          */
   SET SET1                                   /* 親子集合(SET1)          */
     OWNER RECA                               /* 親レコードの指定        */
       ORDER LAST
     MEMBER RECB                              /* 子レコードの指定        */
       INSERTION AUTOMATIC
       RETENTION FIXED
     SETOPTION                                /* SETオプション           */
       OCCURRENCE NUMBER 0                    /* 一連番号属性なし        */
 
   SET SET2                                   /* 親子集合(SET2)          */
     OWNER RECA                               /* 親レコードの指定        */
       ORDER SORTED DUPLICATES PROHIBITED
     MEMBER RECC                              /* 子レコードの指定        */
       INSERTION AUTOMATIC
       RETENTION FIXED
       KEY ASCENDING USERDC1
     SETOPTION                                /* SETオプション           */
       OCCURRENCE NUMBER 10                   /* 一連番号属性あり        */
   SET SET3                                   /* 親子集合(SET3)          */
     OWNER RECC                               /* 子レコードの指定        */
       ORDER SORTED DUPLICATES PROHIBITED
     MEMBER RECD                              /* 孫レコードの指定        */
       INSERTION AUTOMATIC
       RETENTION FIXED
       KEY ASCENDING  USERDD1
     SETOPTION                                /* SETオプション           */
       OCCURRENCE NUMBER 100                  /* 一連番号属性あり        */
   SET SET4                                   /* 親子集合(SET4)          */
     OWNER RECD                               /* 孫レコードの指定        */
       ORDER LAST
     MEMBER RECE                              /* ひ孫レコードの指定      */
       INSERTION AUTOMATIC
       RETENTION FIXED
     SETOPTION                                /* SETオプション           */
       OCCURRENCE NUMBER 0                    /* 一連番号属性なし        */
   SDBOPTION                                  /* SDBオプション           */
     FUNCTION
       DBLODUTL USE            /* HiRDB/SDデータベース作成ユティリティ   */
END SCHEMA
注※

シーケンシャルインデクスの構成要素となります。

(5) SDBデータベース格納定義の定義例

SDBデータベース格納定義例(*ENTRY DICTIONARY文の指定例)を次に示します。

*ENTRY DICTIONARY
 STORAGE SCHEMA FMB01 FOR FMB01               /* SDBデータベース格納名(FMB01)*/
                                              /* FOR SDBデータベース名(FMB01)*/
 DBTYPE 4V                                    /* SDBデータベース種別         */
   STORAGE RECORD RECA                        /* 格納レコード名(RECA)        */
     SEQUENTIAL RECA_SI FOR RECORD  /* シーケンシャルインデクス名(RECA_SI)   */
       ORDER KEY ASCENDING  DBKEY_L2,DBKEY_L3,DBKEY_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エリア      */
   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 NEXT PRIOR TENANT     /* 子の兄弟ポインタ            */
   SET SET3                                   /* 親子集合(SET3)              */
     OWNER POINTER FOR FIRST LAST USER MEMBER /* 孫(RECD)へのポインタ        */
     MEMBER POINTER FOR NEXT PRIOR TENANT     /* 孫の兄弟ポインタ定義        */
   SET SET4                                   /* 親子集合(SET4)              */
     OWNER POINTER FOR FIRST LAST MEMBER      /* ひ孫(RECE)へのポインタ      */
     MEMBER POINTER FOR NEXT PRIOR TENANT     /* ひ孫の兄弟ポインタ          */
   SDBOPTION                                  /* SDBオプション               */
END STORAGE SCHEMA

(6) SDBディレクトリ情報の追加例

SDBディレクトリ情報の追加例(*ENTRY DIRECTORY文の指定例)を次に示します。

*ENTRY DIRECTORY
DBSCHM FMB01