令和6年度 秋期 データベーススペシャリスト試験 午前II 問3
2025年6月26日
【問題3】
関係データベースのテーブルにレコードを1件追加したところ、インデックスとして使うB⁺木のリーフノードCがノードC1とC2に分割された。ノード分割後のB⁺木構造はどれか。ここで、矢印はノードへのポインタとする。また、中間ノードAには十分な空きがあるものとする。
中間ノードAがC2へのポインタを持っていないため、C2へのアクセスに追加のステップが必要となり、木の深さが一定でなくなります。
中間ノードAがC1とC2へのポインタを持ち、リーフノード間の順序も適切に保たれています。
リーフノードの順序が崩れており、B+木の特性を満たしていません。
木の深さが一定でなく、B+木の特性を満たしていません。
【解説】
B+木は、データベースのインデックスとして広く使用される平衡木構造であり、以下の特性を持ちます:
- 木の深さが一定:すべてのリーフノードが同じ深さに位置します。
- リーフノード間の連結:リーフノードは順序を保ちながら連結されています。
リーフノードCが新しいレコードの追加によって容量を超えたため、C1とC2に分割されました。このとき、中間ノードAには十分な空きがあるとされています。したがって、Aは新たにC2へのポインタを追加し、木全体の深さを一定に保つ必要があります。
ア: 中間ノードAがC2へのポインタを持っていないため、C2へのアクセスに追加のステップが必要となり、木の深さが一定でなくなります。
イ: 中間ノードAがC1とC2へのポインタを持ち、リーフノード間の順序も適切に保たれています。
ウ: リーフノードの順序が崩れており、B+木の特性を満たしていません。
エ: 木の深さが一定でなく、B+木の特性を満たしていません。
出典:令和6年度 秋期 データベーススペシャリスト試験 午前II 問3