令和6年秋期試験問題 午前Ⅱ 問3
問3解説へ
関係データベースのテーブルにレコードを1件追加したところ,インデックスとして使う,図のB+木のリーフノードCがノードC1とC2に分割された。ノード分割後のB+木構造はどれか。ここで,矢印はノードへのポインタとする。また,中間ノードAには十分な空きがあるものとする。
正解 イ問題へ
分野 :テクノロジ系
中分類:データベース
小分類:トランザクション処理
中分類:データベース
小分類:トランザクション処理
広告
解説
B+木インデックスは、木の深さが一定で、節点はキー値と子部分木へのポインタをもち、葉のみが値をもつ平衡木(バランス木)を用いたインデックス法です。関係データベースのインデックス法として現在最も普及しています。B木やB+木において1つの節点に格納できるデータの個数は「次数」という数値で決まります。次数NのB+木の条件は次のとおりです。
- 根から葉までの距離が等しい
- 節は2×N個以下のキー値をもつ
- 根以外の節はN個以上のキー値をもつ
- 節は格納するキー値の数+1個の枝(ポインタ)をもつ
- データは葉のみに格納される
- 葉どうしは横方向のリストとして連結されている
- 一見すると木の深さが同じように見えますが、AがC2へのポインタを持っていません。B・C1・Dには1回でアクセスできますが、C2へのアクセスにはポインタを2回参照する必要があります。よって、距離が一定という条件を満たしていません。
- 正しい。木の深さが一定であり、それぞれの葉ノードのリンクが順序関係を保っているため、適切なB+木です。
- CがC1とC2に分割されたため、B⇄C1⇄C2⇄D という順序関係になるはずです。C2の挿入位置が不適切で葉ノードの順序関係が崩れているので、B+木の条件を満たしません。
- 木の深さが一定ではないのでB+木の条件を満たしません。
広告