平成26年度 秋期 午前 問27
データベース
ハッシュインデックスに関する問題
“売上”表への次の検索処理のうち,B⁺木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで,インデックスを設定する列を<>内に示す。
〔表の定義〕字に書き起こしたもの
売上(伝票番号,売上年月日,商品名,利用者 ID,店舗番号,売上金額)
- ア売上金額が 1 万円以上の売上を検索する。<売上金額>
- イ売上年月日が今月の売上を検索する。<売上年月日>
- ウ商品名が‘DB’で始まる売上を検索する。<商品名>
- エ利用者 ID が‘1001’の売上を検索する。<利用者 ID>
答えと解説を見る
✓ これが正解エ利用者 ID が‘1001’の売上を検索する。<利用者 ID>
解説
ハッシュが効くのは値がぴたりと定まる検索です。
二種類のインデックスは、得意とする検索の形が違います。ハッシュインデックスは、キーの値から置き場所を直接計算して求めるので、値がひとつに定まっている検索を一度の計算で片づけられます。ただし計算して得られる置き場所の並びには値の大小の意味がないため、ある幅に入るものをまとめて取り出す使い方には向きません。値を大小の順に並べて木の形に保つほうは、一点を指す検索にも幅を持つ検索にも使えます。判定の軸は、その検索の条件が一点を指しているのか、それとも幅を持っているのか、という一点です。売上の表に対する四つの検索のうち、条件の値がひとつに定まるものを選ぶことになります。
ほかの選択肢はなぜ違うのか
- ア売上金額が 1 万円以上の売上を検索する…:指定されているのは下限だけで、そこから上は全て対象に入ります。幅を持った条件なので、値を大小の順に並べて保つ仕組みのほうが向いています。
- イ売上年月日が今月の売上を検索する。<売上…:今月という指定は、月の初めから終わりまでという幅に置き換えられます。始まりと終わりの間を順にたどれる仕組みが必要な形で、一点を指す検索ではありません。
- ウ商品名が‘DB’で始まる売上を検索する。…:前の何文字かが決まっているだけで、後ろには何が続いてもかまわない条件です。文字列の全体から置き場所を計算するやり方では絞り込めず、幅を持つ検索として扱われます。
この問題の用語
- ハッシュハッシュ関数で作られた値そのもの。元に戻せないので、中身を見せずに同じかどうかだけを確かめるのに使えます。
出典:平成26年度 秋期 基本情報技術者試験 午前 問27(改変:原典の図表をテキストに書き起こした)
同じ用語が出る問題
- 令和5年度 科目B 問4:ハッシュに関する問題(ハッシュ)
- 平成31年度 春期 午前 問18:理想的なハッシュ法の説明(ハッシュ)
- 平成30年度 春期 午前 問7:表探索におけるハッシュ法の特徴(ハッシュ)
- 平成29年度 春期 午前 問27:ソートマージ結合法に関する記述(ハッシュ)
- 平成27年度 秋期 午前 問26:キー値に関する問題(ハッシュ)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)