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

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

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

解答・解説

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

データベースにおける B⁺木インデックス と ハッシュインデックス の特徴を理解しているかを問う問題です。

インデックスの特徴

  • B⁺木インデックス
    木構造を用いてデータを管理する方式です。完全一致検索 だけでなく、大小比較を用いた 範囲検索(<<、<<、BETWEEN など)や、文字列の 前方一致検索 にも適しています。
  • ハッシュインデックス
    ハッシュ関数を用いてデータの格納位置を計算する方式です。完全一致検索(==)において非常に高速に動作しますが、データの順序関係が保持されないため、範囲検索や部分一致検索には適していません。

正解の根拠

選択肢エは「利用者IDが '1001' の売上を検索する」という 完全一致検索 です。完全一致検索においては、B⁺木インデックスよりも ハッシュインデックス の方がより高速に処理できるため、ハッシュインデックスを設定する方が適切です。したがって、エ が正解となります。

各選択肢の解説

  • ア: 「売上金額が1万円以上の売上」は 範囲検索 です。ハッシュインデックスは適さないため、B⁺木インデックス が適切です。
  • イ: 「売上年月日が今月の売上」は特定の期間を指定する 範囲検索 です。B⁺木インデックス が適切です。
  • ウ: 「商品名が 'DB'で始まる売上」は文字列の 前方一致検索 です。B⁺木インデックス が適切です。
  • エ: 正解です。特定のIDを指定する 完全一致検索 であり、ハッシュインデックス が最も適しています。

Spineチーム