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

分野:データベース(関係モデル・正規化・SQL・トランザクション/排他制御・障害回復・NoSQL・データベース設計)|実際に出題されたIPA過去問題

"部品"表のメーカコード列に対し,B+木インデックスを作成した。これによって,検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカのデータ件数は十分に多く,メーカコードの値は均一に分散されているものとする。また,ごく少数の行には,メーカコード列にNULLが設定されている。

  1.  メーカコードの値が1001以外の部品を検索する。
  2.  メーカコードの値が1001でも4001でもない部品を検索する。
  3.  メーカコードの値が4001以上,4003以下の部品を検索する。
  4.  メーカコードの値がNULL以外の部品を検索する。
解答・解説を見る

正解:ウ

AI解説

B+木インデックスはキー値を昇順に整列して保持する木構造の索引であり、等価検索(=)に加えて範囲検索(BETWEEN、<、>)に強いのが特徴である。「4001以上4003以下」のような範囲指定は、索引をたどって該当範囲だけを効率よく読めるため、性能改善が最も期待できる。一方、否定条件(<>)やNULL以外の検索は該当行が大部分を占め、索引を使うメリットがほとんどない。 ア: 「1001以外」という否定条件は表の大部分の行が該当するため、索引を使うより全表走査のほうが効率的であり、改善は期待できない。 イ: 「1001でも4001でもない」も否定条件であり、アと同様に該当行が多すぎて索引の効果がない。 ウ: 正しい。値が均一に分散していれば該当行はごく一部であり、B+木の得意な範囲検索によって読み取る行を大幅に絞り込める。 エ: NULLはごく少数なので「NULL以外」はほぼ全行が該当し、索引による絞り込み効果がない。また一般にNULLは索引に登録されない。 💡 インデックスが効くのは「絞り込める」検索。否定条件・該当率の高い条件・先頭があいまいなLIKE('%…')は索引が効かない典型パターンとして覚える。

出典:平成23年度 秋期 応用情報技術者試験 午前 問32 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「データベース」分野の攻略ポイント

関係モデル・正規化・SQL・トランザクション管理・障害回復・データベース設計が中心です。計算問題は少なく、定義と手順を正確に覚えていれば確実に得点できる、いわば「取りこぼしてはいけない」分野です。特に正規形とACID特性は毎年のように形を変えて出ます。

データベースの攻略ポイントをすべて見る(要点5項目・ひっかけ3項目)→

同じ分野(データベース(関係モデル・正規化・SQL・トランザクション/排他制御・障害回復・NoSQL・データベース設計))の過去問