Hitachi

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


2.3.6 ポインタによる親子集合の実現

親子集合で表現したレコード間の論理的な親子関係を,データベース中で関係づけます。これをポインタといいます。ポインタはSDBデータベース格納定義で定義できます。

次に示すポインタを親子集合を構成するレコード間に設定できます。ポインタの種類を次の表に示します。

表2‒7 ポインタの種類

ポインタの場所

種類

説明

親レコード

FIRSTポインタ

親レコードが子レコードを持つ場合,先頭の子レコードの位置情報を親レコードが管理するためにFIRSTポインタを持ちます。

FIRSTポインタは,親レコードに関係づけられた子レコードのレコード型ごとに設定されます。

LASTポインタ

親レコードが子レコードを持つ場合,最終の子レコードの位置情報を親レコードが管理するためにLASTポインタを持ちます。

LASTポインタは,親レコードに関係づけられた子レコードのレコード型ごとに設定されます。

USERポインタ

親レコードが子レコードを持つ場合,任意の子レコードの位置情報を子レコードごとに1つだけ持つことができます。これをUSERポインタといいます。

USERポインタは,UAPの指示によって,設定・解除できます。USERポインタが設定されている場合は,UAPの指示によって,直接該当するレコードにアクセスできます。

4V FMBのSDBデータベースの場合に,USERポインタを設定できます。

子レコード

NEXTポインタ

同一レコード型の子レコードは,1つの親レコードに関連づけられたレコードの範囲内で,次のレコード(次の一連番号またはユーザキーを持つレコード)の位置情報を管理するために,NEXTポインタを持ちます。

最終レコードのNEXTポインタは親レコードを指します。

PRIORポインタ

同一レコード型の子レコードは,1つの親レコードに関連づけられたレコードの範囲内で,直前のレコード(1つ前の一連番号またはユーザキーを持つレコード)の位置情報を管理するために,PRIORポインタを持ちます。

先頭レコードのPRIORポインタは親レコードを指します。

OWNERポインタ

子レコードに親レコードの位置情報を保持する場合,OWNERポインタをSDBデータベース格納定義で定義します。OWNERポインタはSD FMBのSDBデータベースの場合に定義できます。

子レコードに二次インデクスを定義するときは,OWNERポインタの定義が必要です。

OWNERポインタは子レコードごとに1つだけ持つことができます。

レコードとポインタの関係(OWNERポインタ以外の場合)を「図2-14 レコードとポインタの関係(OWNERポインタ以外の場合)」に,レコードとポインタの関係(OWNERポインタの場合)を「図2-15 レコードとポインタの関係(OWNERポインタの場合)」に示します。

図2‒14 レコードとポインタの関係(OWNERポインタ以外の場合)

[図データ]

図2‒15 レコードとポインタの関係(OWNERポインタの場合)

[図データ]