令和5年度 秋期 応用情報技術者試験 午前 問26
テクノロジ/データベース“売上” 表への次の検索処理のうち,B+ 木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで,インデックスを設定する列を<>内に示す。 売上(伝票番号,売上年月日,商品名,利用者 ID,店舗番号,売上金額)
出典:令和5年度 秋期 応用情報技術者試験 午前 問26
- ア売上金額が1万円以上の売上を検索する。<売上金額>
- イ売上年月日が今月の売上を検索する。<売上年月日>
- ウ商品名が ‘DB’ で始まる売上を検索する。<商品名>
- エ利用者 ID が ‘1001’ の売上を検索する。<利用者 ID>
正解:エ
解説
ハッシュインデックスは,キー値からハッシュ値を計算して格納位置を直接求めるため,「=」による完全一致検索に強い一方,値の大小順を保持しないため範囲検索や前方一致検索には使えません。範囲・前方一致にはキー順に並ぶ B+ 木インデックスが適しています。利用者 ID が '1001' という完全一致検索だけがハッシュ向きです。
選択肢ごとの解説
- ア誤り。「1万円以上」は範囲検索なので,キーの順序を保持する B+ 木インデックスが適しています。
- イ誤り。「今月の売上」も日付の範囲検索なので B+ 木が適しています。
- ウ誤り。「'DB' で始まる」は前方一致検索であり,順序を利用する B+ 木が適しています。
- エ正しい。利用者 ID の完全一致(=)検索は,ハッシュインデックスが最も効率的に処理できます。