応用情報技術者 2023年 秋期 午前2 問26
問題文
“売上” 表への次の検索処理のうち、木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで、インデックスを設定する列を<>内に示す。
売上(伝票番号、売上年月日、商品名、利用者ID, 店舗番号、売上金額)
選択肢
ア:売上金額が1万円以上の売上を検索する。 <売上金額>
イ:売上年月日が今月の売上を検索する。 <売上年月日>
ウ:商品名が 'DB' で始まる売上を検索する。 <商品名>
エ:利用者IDが '1001'の売上を検索する。 <利用者ID>(正解)
売上表の検索処理におけるインデックス選択【午前2 解説】
要点まとめ
- 結論:等価検索が主な利用方法ならハッシュインデックスが適しており、利用者IDの検索に最適です。
- 根拠:ハッシュインデックスは等価比較に強く、範囲検索や前方一致検索には不向きです。
- 差がつくポイント:検索条件の種類(等価か範囲か)を見極め、適切なインデックス構造を選ぶことが重要です。
正解の理由
利用者IDでの検索は「利用者ID = '1001'」という等価検索です。ハッシュインデックスは等価検索に特化しており、該当するキーを高速に特定できます。一方、木インデックスは範囲検索や前方一致検索に強いですが、等価検索だけならハッシュインデックスの方が効率的です。したがって、選択肢エが最も適切です。
よくある誤解
ハッシュインデックスはすべての検索に万能と思いがちですが、範囲検索や前方一致検索には不向きです。
また、木インデックスは等価検索でも使えますが、ハッシュインデックスの方が高速な場合があります。
また、木インデックスは等価検索でも使えますが、ハッシュインデックスの方が高速な場合があります。
解法ステップ
- 検索条件の種類を確認する(等価検索か範囲検索か、前方一致か)。
- 等価検索ならハッシュインデックス、範囲検索や前方一致検索なら木インデックスを選ぶ。
- 各選択肢の検索条件を分類する。
- 等価検索の選択肢を特定し、その中で最も適切なものを選ぶ。
選択肢別の誤答解説
- ア: 売上金額が1万円以上の検索は範囲検索なので木インデックスが適切。
- イ: 売上年月日が今月の売上を検索するのも範囲検索に該当し、木インデックスが向く。
- ウ: 商品名が 'DB' で始まる検索は前方一致検索であり、木インデックスが適切。
- エ: 利用者IDが '1001' の等価検索なのでハッシュインデックスが最適。
補足コラム
木インデックスはツリー構造でキーを順序付けて管理し、範囲検索や順序に基づく検索に強いです。
ハッシュインデックスはハッシュ関数でキーを直接特定し、等価検索の高速化に特化しています。
データベース設計では検索パターンに応じてインデックスを使い分けることがパフォーマンス向上の鍵です。
ハッシュインデックスはハッシュ関数でキーを直接特定し、等価検索の高速化に特化しています。
データベース設計では検索パターンに応じてインデックスを使い分けることがパフォーマンス向上の鍵です。
FAQ
Q: ハッシュインデックスは範囲検索に使えますか?
A: いいえ。ハッシュインデックスは等価検索に特化しており、範囲検索には不向きです。
A: いいえ。ハッシュインデックスは等価検索に特化しており、範囲検索には不向きです。
Q: 木インデックスは等価検索でも使えますか?
A: はい。木インデックスは等価検索も可能ですが、ハッシュインデックスの方が高速な場合があります。
A: はい。木インデックスは等価検索も可能ですが、ハッシュインデックスの方が高速な場合があります。
関連キーワード: ハッシュインデックス、木インデックス、等価検索、範囲検索、前方一致検索、インデックス選択

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

