2.5.6 位置指示子の位置づけ【SD FMB】
SD FMBのSDBデータベース中のレコードを検索し,レコード実現値に対してレコードの位置づけを行います。
(1) 位置づけの種類
位置づけには,次の3つの検索があります。
-
レコード型内の検索
レコード位置指示子を使用した検索です。常にインデクスを使用した検索となります。ルートレコード,および二次インデクスを定義したレコードに対して実行できます。
-
親子集合型内の検索
親子集合位置指示子を使用した検索です。特定の親レコード実現値配下の子レコードを検索します。常にポインタを使用した検索となります。子レコードに対して実行できます。
-
位置指示子指定の検索
DMLに指定した位置指示子が指すレコードを検索します。
(2) 位置づけの順序,開始位置および方向
レコード型内の検索,および親子集合型内の検索では,順序,開始位置および方向を決定してレコードを検索します。
順序,開始位置および方向については,「17.3.3 検索の順序,開始位置および方向」を参照してください。
(3) レコードの検索範囲の例
検索の基点となるレコードと検索の方向の例を次の図に示します。
(4) レコードの特定方法
レコード型内の検索,および親子集合型内の検索では,次の方法でレコードを特定します。
-
DMLの内容および,位置指示子の状態から検索の順序,開始位置および方向を決定します。順序,開始位置および方向については,「17.3.3 検索の順序,開始位置および方向」を参照してください。
-
条件が指定されていない場合は,開始位置のレコードを検索結果とします。条件が指定されている場合は,開始位置から順序に従いレコードデータを評価し,最初に条件が真となるレコードを検索結果とします。
位置指示子指定の検索の場合は,DMLに指定した位置指示子が指すレコードを検索結果とします。
(5) レコードの位置づけ
レコード型内の検索時は,レコードに位置指示子を位置づけておく必要はありません。親子集合型内の検索,および位置指示子指定の検索時は,親子集合位置指示子の親レコードを位置づけておく必要があります。レコードの位置づけについては,「2.5.3(1) レコードの位置づけ」を参照してください。