12.6.2 レコードの格納順序
レコードの格納順序はデータベースの種類によって異なります。
(1) 4V FMBまたはSD FMBのSDBデータベースの場合
次に示すデータベースモデルと実現値モデルを例にして,入力データファイルのレコードの格納順序を説明します。
この場合,入力データファイル中のレコード格納順序は次のようにしてください。
入力データファイル中のレコード格納順序に従って,データベースにレコードが格納されます。
規則および注意事項を次に示します。
-
load文のseqkeyckにyesを指定する場合は,ルートレコードのシーケンシャルインデクスのキー値が昇順になるように作成してください。
-
子レコードを親子集合に挿入する順序は,SDBデータベース定義のORDER句の指定に関係なく,入力データファイル中のレコードの順番に格納します。ただし,SDBデータベース定義のORDER句にSORTED DUPLICATESを指定した子レコード型のデータは,ユーザキーがKEY句で指定した順序(ASCENDINGは昇順,DESCENDINGは降順)となるように作成してください。並び順が不正な場合,論理エラーになります。
また,SORTED DUPLICATES PROHIBITEDを指定した場合は,キー値の重複時も論理エラーになります。
-
横分割されたSDBデータベースに二次インデクスが定義されている場合,レコードを格納するRDエリアと二次インデクスを格納するRDエリアが対応しているかどうかを,pdsdblodコマンドの実行時にチェックします。具体的には,レコードと二次インデクスの格納先が定義上の何番目のRDエリアなのかを求め,レコードと二次インデクスが定義上の同じ位置に格納されることをチェックします。レコードを格納するRDエリアと二次インデクスを格納するRDエリアが対応していない(異なる位置に格納される)場合は,論理エラーになります。
なお,子レコードに定義した二次インデクスで,キー(SDBデータベース定義のTYPE句のデータ種別1にKを指定した構成要素)を二次インデクスのRDエリア分割キーに指定した場合,ルートレコードの格納時に論理エラーになります。
チェックの例は,「17.4.6(4) 共通規則」を参照してください。
(2) 4V AFMのSDBデータベースの場合
次に示すデータベースモデルと実現値モデルを例にして,入力データファイルのレコードの格納順序を説明します。
この場合,入力データファイル中のレコード格納順序は次のようにしてください。
入力データファイル中のレコード格納順序に従って,データベースにレコードが格納されます。
仮想ルートレコードに対する実現値のレコードは必要ありません。
子レコードを親子集合に挿入する順序は,SDBデータベース定義のORDER句の指定に従います。ただし,SDBデータベース定義のORDER句にSORTED DUPLICATES PROHIBITEDを指定した子レコード型のデータは,ユーザキーがKEY句で指定した順序(ASCENDINGは昇順,DESCENDINGは降順)となるように作成してください。並び順が不正な場合,論理エラーになります。