平成30年度春期 応用情報技術者試験 午前 問26

分野:データベース|実際に出題されたIPA過去問題

関係データベースのテーブルにレコードを1件追加したところ,インデックスとして使う,図のB+木のリーフノードCがノードC1とC2に分割された。ノード分割後のB+木構造はどれか。ここで,矢印はノードへのポインタとする。また,中間ノードAには十分な空きがあるものとする。

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より

※選択肢ア〜エは上の図表内に記載されています。

解答・解説を見る

正解:イ

AI解説

B+木では,リーフノードが満杯になって分割されると,分割後の2つのノード(C1,C2)を親ノードから参照できるように,分割位置のキー値を親(中間ノードA)に追加し,AからC1とC2の両方へのポインタを張る。本問ではAに十分な空きがあるため,Aの分割は起こらず,Aの子が1つ増えるだけの構造(イ)になる。 ア: 誤り。分割後の一方のノードだけが親から参照される構造は,もう一方のノードに親からたどり着けなくなるため不適切である。 イ: 正解。中間ノードAに分割キーが追加され,AからC1とC2の両方にポインタが張られた構造であり,B+木のノード分割の結果として正しい。 ウ: 誤り。C1の子としてC2をぶら下げるなど木の高さが部分的に変わる構造は,全リーフの深さが等しいというB+木(平衡木)の性質に反する。 エ: 誤り。親ノードを経由しない不正なポインタ構成であり,キー値による探索経路が成立しない。 💡 B+木は「全てのリーフが同じ深さ」「データはリーフに置き,中間ノードは探索用のキーとポインタのみ」が原則。リーフ分割時は分割キーを親にコピーして子ポインタを1本増やす,親も満杯なら親も分割して再帰的に上へ伝播する,と覚える。

出典:平成30年度 春期 応用情報技術者試験 午前 問26 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「データベース」分野の攻略ポイント

関係モデル・正規化・SQL・トランザクション管理・障害回復・データベース設計が中心です。計算問題は少なく、定義と手順を正確に覚えていれば確実に得点できる、いわば「取りこぼしてはいけない」分野です。特に正規形とACID特性は毎年のように形を変えて出ます。

データベースの攻略ポイントをすべて見る(要点5項目・ひっかけ3項目)→

同じ分野(データベース)の過去問