データベーススペシャリスト試験 2020年 午前213


ハッシュ方式によるデータ格納方法の説明はどれか。
レコードの特定のデータ項目の値が論理的に関連したレコードを、同一ブロック又はできる限り隣接したブロックに格納する。
レコードの特定のデータ項目の値に対応した子レコード同士を、ポインタで鎖状に連結して格納する。
レコードの特定のデータ項目の値の順序を保持して、中間ノードとリーフノードの平衡木構造のブロックを作り、リーフブロックにレコード格納位置へのポインタを格納する。
レコードの特定のデータ項目の値を引数とした関数の結果に従って決められたレコード格納場所に格納する。(正解)

解説

ハッシュ方式によるデータ格納方法の説明はどれか。【午前2 解説】

要点まとめ

  • 結論:ハッシュ方式は特定のデータ項目の値を関数に入力し、その結果で格納場所を決定する方法です。
  • 根拠:ハッシュ関数は入力値を固定長のハッシュ値に変換し、データの高速アクセスを可能にします。
  • 差がつくポイント:ハッシュ方式は順序保持やポインタ連結ではなく、関数結果に基づく直接アクセスを特徴とします。

正解の理由

選択肢エは「レコードの特定のデータ項目の値を引数とした関数の結果に従って決められたレコード格納場所に格納する」とあり、これはハッシュ関数を用いてデータの格納位置を決定するハッシュ方式の定義に合致します。ハッシュ方式はデータ項目の値をハッシュ関数に入力し、その出力値(ハッシュ値)を格納場所のインデックスとして利用するため、データの検索や格納が高速に行えます。

よくある誤解

ハッシュ方式はデータの順序を保持しないため、順序を保つB木やリスト構造と混同しやすいです。ポインタ連結もハッシュ方式の特徴ではありません。

解法ステップ

  1. 問題文の「ハッシュ方式」に注目する。
  2. ハッシュ方式の基本概念を思い出す(関数で格納場所を決定)。
  3. 各選択肢の説明をハッシュ方式の特徴と照らし合わせる。
  4. 関数結果に基づく格納場所決定を述べている選択肢を選ぶ。

選択肢別の誤答解説

  • ア: 論理的に関連したレコードを隣接格納するのはクラスタリングや連続格納の説明であり、ハッシュ方式ではない。
  • イ: ポインタで鎖状に連結するのはリンクリストやチェイン法の説明で、ハッシュ方式の格納方法とは異なる。
  • ウ: 順序を保持し平衡木構造を使うのはB木やB+木の説明で、ハッシュ方式とは異なる。
  • : ハッシュ関数の結果に従って格納場所を決める説明で、ハッシュ方式の正しい定義である。

補足コラム

ハッシュ方式はデータベースやファイルシステムで高速な検索を実現するために広く使われています。代表的な手法に「直接アドレッシング」や「チェイン法」「オープンアドレス法」などがあり、衝突処理が重要な課題です。ハッシュ関数の設計も性能に大きく影響します。

FAQ

Q: ハッシュ方式はデータの順序を保持しますか?
A: いいえ、ハッシュ方式は順序を保持せず、関数結果に基づく格納位置で管理します。
Q: ハッシュ方式で衝突が起きた場合はどうしますか?
A: チェイン法やオープンアドレス法などの衝突解決手法を用いて対応します。

関連キーワード: ハッシュ関数, データ格納, 衝突解決, 直接アクセス, チェイン法, オープンアドレス法
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ