平成27年度 春期 応用情報技術者試験 午前 問29
“部品”表のメーカコード列に対し,B⁺木インデックスを作成した。これによって,“部品”表の検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカのデータ件数は十分に多く,メーカコードの値は均一に分散されているものとする。また,“部品”表のごく少数の行には,メーカコード列に NULL が設定されている。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。

キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:ウ
B⁺木インデックスは,キー値の順に並んだ葉ノードがリストでつながっている構造で,特定の値の検索や範囲検索で少数の行を絞り込むときに効果を発揮します。一方,否定条件(〜以外)などで表の大部分の行が該当する検索では,結局ほとんどの行を読むことになり,インデックスの効果はほとんどありません。
-
ア: メーカコードが1001以外の部品を検索する
誤り。否定条件で,表のほぼすべての行が該当するため,インデックスによる性能改善はほとんど期待できません。 -
イ: メーカコードが1001でも4001でもない部品を検索する
誤り。これも否定条件で,ほぼすべての行が該当するため,性能改善はほとんど期待できません。 -
ウ: メーカコードが4001以上,4003以下の部品を検索する
正しい。範囲検索であり,B⁺木で4001の位置を探した後,葉ノードを順にたどって4003までの少数の行だけを取り出せるため,最も性能改善が期待できます。 -
エ: メーカコードが NULL 以外の部品を検索する
誤り。NULL はごく少数なので,ほぼすべての行が該当し,インデックスによる性能改善はほとんど期待できません。
答え
ウ: メーカコードが4001以上,4003以下の部品を検索する
出典:平成27年度 春期 応用情報技術者試験 午前 問29