2.2.3 RDエリアの構造
RDエリアの構造を次の図に示します。
- 〈この項の構成〉
(1) セグメント
セグメントは,レコードおよびインデクスのデータをRDエリアに格納する最小単位です。セグメントは連続した複数ページから構成されています。
1セグメントには,同一のSDBデータベースのレコードまたは1つのインデクスのデータだけが格納されます。SDBデータベースについては,「2.3.3 SDBデータベース」を参照してください。
(2) ページ
ページは,データベースの入出力処理の最小単位です。ページ長を大きくすると,関連するレコードを同一ページ内に格納できるため,データを連続して処理する場合に入出力回数を削減できます。逆に,ページを小さくすると,1ページ当たりに格納できるレコードの件数が少なくなり,データベースアクセスの同時実行性を高めることができます。また,データを格納する際にむだな領域が発生するのを抑えることができます。
ページには次の表に示す種類があります。
ページの種類 |
説明 |
---|---|
レコードを格納するページです。 |
|
インデクスのキー値を格納するページです。 |
|
RDエリアの管理情報を格納するページです。 |
(3) サブページ
ページのうち,データページ(レコードを格納するページ)は,さらに複数の領域に分割できます。この分割した1つの領域をサブページといい,ページを分割することをサブページ分割といいます。
サブページの構造を次の図に示します。
- [説明]
-
1データページは,2〜16のサブページに分割できます。
HiRDB/SDでは,データページにレコードを格納する際,ルートレコードが異なるレコードは別々のデータページに格納されます。そのため,ルートレコード下のレコード数が少ない場合など,レコードのサイズやレコードの配置制御によっては,レコードの格納効率が悪くなることがあります。このような場合,データページをサブページ分割すると,ルートレコードが異なるレコードを同じデータページ内の別々のサブページに格納できるため,レコードの格納効率が良くなります。
SDBデータベース格納定義のSTORAGE RECORD句のSUBPAGE NUMBERでサブページ分割数を指定すると,データページがサブページ分割されます。
(4) ページの格納構造
ページの格納構造を,サブページ分割していない場合とサブページ分割している場合について,次の図に示します。
- [説明]
-
-
レコード
レコードのデータを格納する領域です。
-
空きレコード領域
レコードの削除などによって,ページおよびサブページ内の使用領域の途中にできた未使用領域です。
-
空き領域
ページおよびサブページ中に格納されている最終レコード以降の未使用領域です。
-
制御情報
ページおよびサブページを管理するための情報を格納する領域です。
-
(5) レコードの構造
レコードの構造を次の図に示します。
- [説明]
-
-
レコードデータ格納部
実際のデータを格納する領域です。
レコードデータ格納部の形式は,仮想ルートレコードとそれ以外のレコードで次のように異なります。
●仮想ルートレコードの場合
SDBデータベースの定義時にユーザが指定した構成要素が,定義した順に配置されます。それ以外に,HiRDB/SDが内部的に使用するシステム用構成要素が配置されます。レコードデータ格納部の長さが4の倍数でなければ,末尾に境界調整用の領域が付加されます。
●仮想ルートレコード以外のレコードの場合
SDBデータベースの定義時にユーザが指定した構成要素が,定義した順に配置されます。レコードデータ格納部の長さが4の倍数でなければ,末尾に境界調整用の領域が付加されます。
-
レコード間をつなぐポインタを管理する領域です。
-
将来の親子集合の拡張に備えて,レコード内に設定しておく領域です。ポインタ管理領域の予備領域のサイズは,SDBデータベース格納定義のPOINTER AREA SIZE句で指定できます(省略時に仮定される値は0です)。
-