応用情報技術者試験 応用情報技術者試験 令和5年度秋期 午前 問26: “売上”表への次の検索処理のうち,B+木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで,インデックスを設定する列を<>内に示す。
“売上”表への次の検索処理のうち,B+木インデックスよりもを設定した方が適切なものはどれか。ここで,インデックスを設定する列を<>内に示す。
売上(伝票番号,売上年月日,商品名,利用者 ID,店舗番号,売上金額)
46.40%
問題本文
“売上”表への次の検索処理のうち,B+木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで,インデックスを設定する列を<>内に示す。 売上(伝票番号,売上年月日,商品名,利用者 ID,店舗番号,売上金額)
選択肢
- ア.売上金額が 1 万円以上の売上を検索する。<売上金額>
- イ.売上年月日が今月の売上を検索する。<売上年月日>
- ウ.商品名が ‘DB’ で始まる売上を検索する。<商品名>
- エ.利用者 ID が ‘1001’ の売上を検索する。<利用者 ID>
正解
エ. 利用者 ID が ‘1001’ の売上を検索する。<利用者 ID>
解説
2種類のインデックスの得意分野の違いを問う問題です。ハッシュインデックスは値をハッシュ関数で変換して格納位置を一意に求めるため,「値が等しい」という等価検索(完全一致)を一発で引けて高速ですが,大小比較や範囲検索には使えません。一方B+木インデックスは値が整列して格納されるため,範囲検索(以上・以下,期間)や前方一致検索が得意です。選択肢エ「利用者IDが‘1001’」は等価検索なのでハッシュインデックスが適しており,正解はエです。
選択肢ごとの解説
- ア.「売上金額が1万円以上」は範囲(大小比較)検索であり,整列構造をもつB+木インデックスが適します。ハッシュインデックスは大小比較ができず不向きです。
- イ.「今月の売上」は期間を指定する範囲検索であり,B+木インデックスが適します。ハッシュインデックスでは範囲を扱えません。
- ウ.「‘DB’で始まる」は前方一致検索であり,整列を利用できるB+木インデックスが適します。ハッシュインデックスは部分一致・前方一致を扱えません。
- エ.正しい。「利用者IDが‘1001’」は値の完全一致(等価検索)なので,一致検索を一発で引けるハッシュインデックスが最も適しています。
応用情報技術者試験 令和5年度秋期 午前 の過去問一覧へ戻る・問26