令和7年度 秋期 応用情報技術者試験 午前 問27

“売上”表への次の検索処理のうち,B⁺木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで,インデックスを設定する列を<>内に示す。

売上 (伝票番号, 売上年月日, 商品名, 利用者ID, 店舗番号, 売上金額)

解答・解説

正解: エ. 利用者IDが‘1001’の売上を検索する。<利用者ID>

ハッシュインデックスは、検索キーの値をハッシュ関数に通すことでデータの格納位置(アドレス)を直接算出するため、特定の値を指定する完全一致検索において非常に高速に処理できる特徴があります。しかし、値の大小関係が保持されないため、範囲検索や前方一致検索には適していません。

一方、B+木インデックスは、木構造を用いて値の大小関係を維持しながらデータを管理するため、完全一致検索だけでなく、範囲検索や前方一致検索にも柔軟に対応できるという特徴があります。

本設問では、ハッシュインデックスが適している検索処理、すなわち完全一致検索を行っているものを探します。

各選択肢の解説

  • ア:誤り。「1万円以上」という条件は範囲検索となるため、値の大小関係を維持できるB+木インデックスの方が適しています。
  • イ:誤り。「今月」という条件は特定の期間を指定する範囲検索となるため、B+木インデックスの方が適しています。
  • ウ:誤り。「‘DB’で始まる」という条件は文字列の前方一致検索となるため、B+木インデックスの方が適しています。
  • エ:正解。「‘1001’」という特定の利用者IDを指定する完全一致検索であるため、ハッシュインデックスを設定することで最も高速な検索が期待でき、適切です。

Spineチーム