データベーススペシャリスト平成30年春期 午前Ⅰ 問8

問8

関係データベースのテーブルにレコードを1件追加したところ,インデックスとして使う,図のB+木のリーフノードCがノードC1とC2に分割された。ノード分割後のB+木構造はどれか。ここで,矢印はノードへのポインタとする。また,中間ノードAには十分な空きがあるものとする。
  • [出典]
  • 応用情報技術者
    平成30年春期 問26と同題

分類

テクノロジ系 » データベース » トランザクション処理

正解

解説

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+木の条件を満たしません。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop