応用情報技術者試験 応用情報技術者試験 平成29年度春期 午前 問28: "部品" 表のメーカコード列に対し,B+木インデックスを作成した。これによって,"部品" 表の検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカ
"部品" 表のメーカコード列に対し,B+木インデックスを作成した。これによって,"部品" 表の検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカのデータ件数は十分に多く,"部品" 表に存在するメーカコード列の値の種類は十分な数があり,かつ,均一に分散しているものとする。また,"部品" 表のごく少数の行には,メーカコード列に NULL が設定されている。実線の下線は主キーを,破線の下線はを表す。
部品(部品コード,部品名,メーカコード)
メーカ(メーカコード,メーカ名,住所)
53.16%
問題本文
"部品" 表のメーカコード列に対し,B+木インデックスを作成した。これによって,"部品" 表の検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカのデータ件数は十分に多く,"部品" 表に存在するメーカコード列の値の種類は十分な数があり,かつ,均一に分散しているものとする。また,"部品" 表のごく少数の行には,メーカコード列に NULL が設定されている。実線の下線は主キーを,破線の下線は外部キーを表す。 部品(部品コード,部品名,メーカコード) メーカ(メーカコード,メーカ名,住所)
選択肢
- ア.メーカコードの値が 1001 以外の部品を検索する。
- イ.メーカコードの値が 1001 でも 4001 でもない部品を検索する。
- ウ.メーカコードの値が 4001 以上,4003 以下の部品を検索する。
- エ.メーカコードの値が NULL 以外の部品を検索する。
正解
ウ. メーカコードの値が 4001 以上,4003 以下の部品を検索する。
解説
B+木インデックスがどのような検索で効果を発揮するかを問う問題。B+木は値が大小順に並べて管理されるため、特定値や狭い範囲を指定する検索(等値・範囲検索)で、対象行に素早く絞り込めて効果が高い。逆に「〜以外」「NULL以外」のように表のほとんどの行が該当してしまう検索では、結局ほぼ全件を読むことになりインデックスの効果が薄い。メーカコードの値の種類が十分多く均一分散しているので、4001以上4003以下という狭い範囲検索(選択肢ウ)が最も絞り込みが効き、性能改善が期待できる。正解はウ。
選択肢ごとの解説
- ア.「1001以外」は1001の行を除く大多数が該当するため、ほぼ全件読み込みとなりインデックスの効果が小さい。誤り。
- イ.「1001でも4001でもない」も2値を除く大多数が該当し、絞り込みが効かない。誤り。
- ウ.正しい。4001〜4003という狭い範囲はB+木で順に並んだ値を効率よくたどれ、該当行も少数に絞れるため最も性能改善が期待できる。
- エ.NULLはごく少数なので「NULL以外」はほぼ全件が該当し、絞り込みにならずインデックスの効果が薄い。誤り。
応用情報技術者試験 平成29年度春期 午前 の過去問一覧へ戻る・問28