平成27年度 春期 応用情報技術者試験 午前 問29
テクノロジ/データベース“部品”表のメーカコード列に対し,B+木インデックスを作成した。これによって,“部品”表の検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカのデータ件数は十分に多く,メーカコードの値は均一に分散されているものとする。また,“部品”表のごく少数の行には,メーカコード列にNULLが設定されている。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。 部品(部品コード,部品名,メーカコード) メーカ(メーカコード,メーカ名,住所)
出典:平成27年度 春期 応用情報技術者試験 午前 問29
- アメーカコードの値が1001以外の部品を検索する。
- イメーカコードの値が1001でも4001でもない部品を検索する。
- ウメーカコードの値が4001以上,4003以下の部品を検索する。
- エメーカコードの値がNULL以外の部品を検索する。
正解:ウ
解説
B+木インデックスは等値検索や範囲検索の高速化に有効です。値が均一に分散している場合,「特定の値と一致しない」「NULLでない」といった否定条件や広い範囲の条件では,多くの行がヒットしてしまい索引の絞込み効果が小さくなります。一方,狭い範囲(例えば4001以上4003以下)を指定する検索では,該当する行が少なく絞り込めるため,インデックスによる性能改善効果が大きくなります。
選択肢ごとの解説
- ア誤り。「1001以外」は,ほとんどの行が条件に一致するため,インデックスによる絞込み効果はほとんど期待できません。
- イ誤り。「1001でも4001でもない」も同様に大部分の行が該当するため,インデックスの効果は小さいです。
- ウ正しい。4001以上4003以下という狭い範囲の検索は該当行が少なく,B+木インデックスによる絞込み効果が最も期待できます。
- エ誤り。「NULL以外」は,ごく少数の行(NULLの行)を除く大部分の行が該当するため,インデックスの効果はほとんど期待できません。