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ポインタは親レコードを指します。 |
||
子レコードに親レコードの位置情報を保持する場合,OWNERポインタをSDBデータベース格納定義で定義します。OWNERポインタはSD FMBのSDBデータベースの場合に定義できます。 子レコードに二次インデクスを定義するときは,OWNERポインタの定義が必要です。 OWNERポインタは子レコードごとに1つだけ持つことができます。 |
レコードとポインタの関係(OWNERポインタ以外の場合)を「図2-14 レコードとポインタの関係(OWNERポインタ以外の場合)」に,レコードとポインタの関係(OWNERポインタの場合)を「図2-15 レコードとポインタの関係(OWNERポインタの場合)」に示します。