2.3.6 ポインタによる親子集合の実現
親子集合で表現したレコード間の論理的な親子関係を,データベース中で関係づけます。これをポインタといいます。ポインタはSDBデータベース格納定義で定義できます。
次に示すポインタを親子集合を構成するレコード間に設定できます。ポインタの種類を次の表に示します。
ポインタの場所 |
種類 |
説明 |
---|---|---|
親レコードが子レコードを持つ場合,先頭の子レコードの位置情報を親レコードが管理するためにFIRSTポインタを持ちます。 FIRSTポインタは,親レコードに関係づけられた子レコードのレコード型ごとに設定されます。 |
||
親レコードが子レコードを持つ場合,最終の子レコードの位置情報を親レコードが管理するためにLASTポインタを持ちます。 LASTポインタは,親レコードに関係づけられた子レコードのレコード型ごとに設定されます。 |
||
親レコードが子レコードを持つ場合,任意の子レコードの位置情報をレコード型ごとに1つだけ持つことができます。これをUSERポインタといいます。 USERポインタは,UAPの指示によって,設定・解除できます。USERポインタが設定されている場合は,UAPの指示によって,直接該当するレコードにアクセスできます。 4V FMBのSDBデータベースの場合に,USERポインタを設定できます。 |
||
同一レコード型の子レコードは,1つの親レコードに関連づけられたレコードの範囲内で,次のレコード(次の一連番号またはユーザキーを持つレコード)の位置情報を管理するために,NEXTポインタを持ちます。 最終レコードのNEXTポインタは親レコードを指します。 |
||
同一レコード型の子レコードは,1つの親レコードに関連づけられたレコードの範囲内で,直前のレコード(1つ前の一連番号またはユーザキーを持つレコード)の位置情報を管理するために,PRIORポインタを持ちます。 先頭レコードのPRIORポインタは親レコードを指します。 |
レコードとポインタの関係を次の図に示します。