Hitachi

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


2.5.7 レコードの格納

SDBデータベースに,1件のレコードを格納します。TP1/FSPが提供するライブラリ関数を使用する場合,格納するデータはデータ格納エリアに設定します。DMLを使用する場合,格納するデータは埋込み変数に設定します。格納されたレコードに対しては,レコードの位置づけが行われます。

なお,ユーザキーが定義されている4V MAMまたは4V TAMのSDBデータベースにレコードを格納する場合,格納するユーザキーにはLASTポインタが示すレコードのユーザキーよりも,大きな値を設定する必要があります。

〈この項の構成〉

(1) USERポインタの設定【4V FMB】

4V FMBのSDBデータベースの子レコードを格納する場合,親レコード型にUSERポインタの定義があれば(SDBデータベース格納定義のOWNER POINTER FOR句にFIRST LAST USERを指定していれば),USERポインタを設定できます。

(2) レコードの格納順序

レコード格納時の格納順序は,レコードによって異なります。レコードの格納順序について,次に説明します。

なお,レコードの配置制御(具体的に,どのページにどのようにレコードを格納するか)については,次の項目を参照してください。

(a) ルートレコードの格納順序

ルートレコードに格納順序はありません。

なお,ルートレコードの検索に使用するシーケンシャルインデクスは,データベースキーの昇順に作成されます。そのため,ルートレコードは,データベースキーの昇順に検索されます。

(b) 子レコードの格納順序

子レコードは次のどちらかの方法で格納されます。子レコードの格納方法は,子レコード型の定義でユーザキーを定義しているかどうかで異なります。

  • キー順での格納(SDBデータベース定義のORDER SORTED DUPLICATES PROHIBITED指定)

    子レコード型の定義でユーザキーを定義している場合,格納するレコード中のユーザキーの値に従って,HiRDB/SDがレコードの挿入位置を検索します。その検索結果に従って,キーの昇順または降順にレコードが格納されます。

  • 子レコード群の最後尾への格納(SDBデータベース定義のORDER LAST指定)

    子レコード型の定義でユーザキーを定義していない場合,HiRDB/SDがレコードの子レコード群の最後尾を検索します。その検索結果に従って,レコードが格納されます。

それぞれのレコードの格納方法を次の図に示します。

図2‒37 レコードの格納方法

[図データ]

(3) レコードの位置づけ

ルートレコードの格納時は,レコードに位置指示子を位置づけておく必要はありません。

子レコードの格納時は,親レコードに対してレコードの検索,またはレコードの格納を実行して,位置指示子を親レコードに位置づけておく必要があります。

ただし,4V AFMのSDBデータベースの場合は,位置指示子を親レコードに位置づけておく必要はありません(親レコードになる仮想ルートレコードの位置づけをHiRDB/SDが内部的に行います)。

レコードの位置づけについては,「2.5.3(1) レコードの位置づけ」を参照してください。