戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

応用情報技術者 2017年 春期 午前228


問題文

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

選択肢

メーカコードの値が1001 以外の部品を検索する。
メーカコードの値が1001 でも4001 でもない部品を検索する。
メーカコードの値が4001 以上、4003 以下の部品を検索する。(正解)
メーカコードの値がNULL以外の部品を検索する。

B+木インデックスによる検索性能改善【午前2 解説】

要点まとめ

  • 結論:B+木インデックスは範囲検索(例:4001以上4003以下)で最も効果を発揮します。
  • 根拠:B+木はキーの順序を保持し、範囲内の連続したデータを効率的に読み出せるためです。
  • 差がつくポイント:単一値の除外検索やNULL判定ではインデックスの恩恵が薄く、範囲検索での性能向上が顕著です。

正解の理由

選択肢ウ「メーカコードの値が4001以上、4003以下の部品を検索する」は、B+木インデックスの特性を最大限に活かせる範囲検索です。B+木は葉ノードが連結リスト状に繋がっており、指定範囲のキーを連続的に高速に取得可能です。これにより、該当範囲のデータを効率よく抽出でき、検索性能が大幅に改善します。

よくある誤解

NULL値の検索や特定の値を除外する検索は、インデックスの利用効率が低くなるため性能改善は限定的です。

解法ステップ

  1. B+木インデックスの特徴を理解する(順序付けられた木構造で範囲検索に強い)。
  2. 問題文の条件(メーカコードの値が均一に分散、多数のデータ)を確認。
  3. 各選択肢の検索条件がインデックスの特性に合うか検討。
  4. 範囲検索である選択肢ウが最も効率的であると判断。

選択肢別の誤答解説

  • ア: 「1001以外の部品を検索」は除外条件であり、インデックスの範囲走査ができず効率が悪い。
  • イ: 「1001でも4001でもない部品を検索」も除外条件で、インデックスの連続走査ができない。
  • ウ: 「4001以上4003以下の部品を検索」は範囲検索であり、B+木の連続走査が活かせるため正解。
  • エ: 「NULL以外の部品を検索」はNULLはインデックスに含まれないことが多く、全件走査に近くなるため効率が悪い。

補足コラム

B+木インデックスはリーフノードが連結リストで繋がっているため、範囲検索や順序付き検索に強みがあります。一方、NULL値は多くのDBMSでインデックスに登録されないため、NULL判定の検索ではインデックスが使われにくい点に注意が必要です。

FAQ

Q: B+木インデックスはなぜ範囲検索に強いのですか?
A: 葉ノードが連結リストで繋がっており、範囲内のキーを連続して高速に読み出せるためです。
Q: NULL値はインデックスに含まれますか?
A: 多くのDBMSではNULLはインデックスに登録されないため、NULL検索ではインデックスが利用されにくいです。

関連キーワード: B+木インデックス、範囲検索、NULL値、検索性能、データベースインデックス
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について