令和7年度 秋期 応用情報技術者試験 午前 問27
“売上”表への次の検索処理のうち、B+木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで、インデックスを設定する列を<>内に示す。
売上(伝票番号、売上年月日、商品名、利用者ID、店舗番号、売上金額)
キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:エ
-
ア: 売上金額が1万円以上の売上を検索する。<売上金額>
誤り。金額が1万円以上という条件は範囲検索であり、値の大小関係を利用して連続した値を効率よくたどれるB+木インデックスが適しています。ハッシュインデックスは等価検索向きであり、範囲検索には向いていないので、この記述に対してハッシュインデックスを設定するのは適切ではありません。 -
イ: 売上年月日が今月の売上を検索する。<売上年月日>
誤り。今月という期間内のデータを取得する処理も範囲検索になります。日付の範囲条件では、順序関係を利用して検索するB+木インデックスが有効です。ハッシュインデックスはキーをハッシュ値に変換して管理するため、範囲条件での検索に向いておらず、この記述に対しては適切ではありません。 -
ウ: 商品名が“DB”で始まる売上を検索する。<商品名>
誤り。先頭が“DB”で始まるという条件は、前方一致検索に相当します。文字列の並び順を利用して“DB”から始まる範囲をたどる必要があるため、順序情報を保持するB+木インデックスが向いています。ハッシュインデックスは値の順序を保持しないので、前方一致検索には適していません。 -
エ: 利用者IDが“1001”の売上を検索する。<利用者ID>
正しい。利用者IDが“1001”という条件は、特定の値に完全一致するレコードを検索する等価検索です。ハッシュインデックスは特定のキー値に対応する場所を直接求めることができ、等価検索を高速に行える構造であるため、このような検索処理に対してハッシュインデックスを設定することが適切です。
答え
エ: 利用者IDが“1001”の売上を検索する。<利用者ID>
出典:令和7年度 秋期 応用情報技術者試験 午前 問27