IPA過去問ドリル

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

テクノロジ/データベース

"部品"表のメーカコード列に対し,B⁺木インデックスを作成した。これによって,"部品"表の検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカのデータ件数は十分に多く,"部品"表に存在するメーカコード列の値の種類は十分な数があり,かつ,均一に分散しているものとする。また,"部品"表のごく少数の行には,メーカコード列にNULLが設定されている。 部品(部品コード,部品名,メーカコード) ※メーカコードは外部キー メーカ(メーカコード,メーカ名,住所) ※メーカコードは主キー

出典:平成30年度 秋期 応用情報技術者試験 午前 問29

正解:ウ

解説

B⁺木インデックスは,値を範囲比較(=,<,>,BETWEENなど)する検索で有効に働きます。メーカコードの値が十分な種類があり均一に分散しているため,「4001以上,4003以下」のような狭い範囲を指定する検索では,インデックスをたどって該当範囲だけを効率よく絞り込め,性能改善が最も期待できます。

選択肢ごとの解説

  • 誤り。「1001以外」のような否定条件は,ほとんどの行が該当するため絞り込み効果が薄く,インデックスの効果は限定的です。
  • 誤り。「1001でも4001でもない」も同様にほとんどの行が該当し,インデックスによる絞り込みの効果は小さいです。
  • 正しい。「4001以上,4003以下」という狭い範囲検索は,B⁺木インデックスによる絞り込みの効果が最も期待できます。
  • 誤り。「NULL以外」もほとんどの行が該当する条件であり,値がごく少数しかないNULL以外を指定してもインデックスによる絞り込み効果は小さいです。
応用情報技術者の過去問を演習モードで解く