応用情報技術者 2010年 春期 午前2 問30
問題文
インデックス方式のうち、キー値を基に算出して格納位置を求めるとき、異なったキー値でも同一の算出結果となる可能性があるものはどれか。
選択肢
ア:木インデックス
イ:転置インデックス
ウ:ハッシュインデックス(正解)
エ:ビットマップインデックス
インデックス方式のうち、キー値を基に算出して格納位置を求めるとき、異なったキー値でも同一の算出結果となる可能性があるものはどれか【午前2 解説】
要点まとめ
- 結論:異なるキー値が同じ算出結果になる可能性があるのはハッシュインデックスです。
- 根拠:ハッシュ関数はキー値を固定長のハッシュ値に変換し、衝突(コリジョン)が起こることがあるためです。
- 差がつくポイント:B+木やビットマップは衝突を前提とせず、転置インデックスは全文検索用で衝突の概念が異なります。
正解の理由
ハッシュインデックスはキー値をハッシュ関数で変換し、その結果を格納位置の算出に使います。ハッシュ関数は有限の範囲にマッピングするため、異なるキー値が同じハッシュ値になる「衝突」が必ず発生します。これに対し、B+木インデックスはキー値を順序付けて格納し、衝突は起こりません。転置インデックスは文書検索用のインデックスであり、ビットマップインデックスは属性値の存在をビットで表現するため、衝突の概念が異なります。したがって、衝突が起こる可能性があるのはハッシュインデックスだけです。
よくある誤解
ハッシュインデックスは高速アクセスが特徴ですが、衝突がないと誤解されがちです。B+木も高速ですが、衝突は発生しません。転置インデックスやビットマップインデックスは用途が異なり、衝突の概念が当てはまりません。
解法ステップ
- インデックス方式の特徴を整理する。
- ハッシュインデックスはキー値をハッシュ関数で変換し、衝突が起こる可能性があることを確認。
- B+木はキー値を順序付けて格納し、衝突がないことを理解。
- 転置インデックスは全文検索用で衝突の概念が異なることを把握。
- ビットマップインデックスは属性の有無をビットで表現し、衝突の概念がないことを確認。
- 以上から、衝突が起こる可能性があるのはハッシュインデックスであると判断する。
選択肢別の誤答解説
- ア: B+木インデックス
キー値を順序付けて格納し、衝突は発生しません。 - イ: 転置インデックス
文書検索用で、キー値の衝突という概念は適用されません。 - ウ: ハッシュインデックス
ハッシュ関数の性質上、異なるキー値が同じハッシュ値になる衝突が起こり得ます。 - エ: ビットマップインデックス
属性の有無をビットで表現し、衝突の概念はありません。
補足コラム
ハッシュインデックスの衝突は、チェイン法やオープンアドレス法などの衝突解決手法で対応します。B+木は範囲検索に強く、ハッシュインデックスは等価検索に適しています。転置インデックスは全文検索エンジンで使われ、ビットマップインデックスはデータウェアハウスの高速集計に利用されます。
FAQ
Q: ハッシュインデックスの衝突はなぜ起こるのですか?
A: ハッシュ関数は無限のキー空間を有限のハッシュ値空間にマッピングするため、異なるキーが同じハッシュ値になることがあります。
A: ハッシュ関数は無限のキー空間を有限のハッシュ値空間にマッピングするため、異なるキーが同じハッシュ値になることがあります。
Q: B+木インデックスは衝突しないのですか?
A: はい。B+木はキーを順序付けて格納するため、同じキー値が重複しない限り衝突は起こりません。
A: はい。B+木はキーを順序付けて格納するため、同じキー値が重複しない限り衝突は起こりません。
関連キーワード: ハッシュインデックス、衝突、B+木インデックス、転置インデックス、ビットマップインデックス、インデックス方式、データベース

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

