平成30年度 秋期 応用情報技術者試験 午前 問29
“部品”表のメーカコード列に対し,B⁺木インデックスを作成した。これによって,“部品”表の検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカのデータ件数は十分に多く,“部品”表に存在するメーカコード列の値の種類は十分な数があり,かつ,均一に分散しているものとする。また,“部品”表のごく少数の行には,メーカコード列にNULLが設定されている。実線の下線は主キーを,破線の下線は外部キーを表す。
部品(部品コード,部品名,メーカコード)
メーカ(メーカコード,メーカ名,住所)
(主キー:部品の“部品コード”,メーカの“メーカコード”/外部キー:部品の“メーカコード”)
キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:ウ
-
ア: 1001以外を検索
誤り。否定条件(≠)では表のほとんど全ての行が該当するため,インデックスを使っても表全体を走査するのと変わらず,性能改善は期待できません。 -
イ: 1001でも4001でもないものを検索
誤り。これも否定条件であり,ほぼ全件が該当するため,インデックスによる絞込みの効果はほとんどありません。 -
ウ: 4001以上,4003以下を検索
正しい。B⁺木インデックスは,葉ノードがキー順に連結されているため,範囲検索に強いという特徴があります。4001を探索して葉ノードに到達した後,4003まで順にたどるだけで該当行を絞り込めるため,性能改善が最も期待できます。 -
エ: NULL以外を検索
誤り。NULLはごく少数の行だけなので,NULL以外の行はほぼ全件が該当します。インデックスによる絞込みの効果はほとんどありません。
答え
ウ: メーカコードの値が4001以上,4003以下の部品を検索する。
出典:平成30年度 秋期 応用情報技術者試験 午前 問29