IPA過去問ドリル

平成22年度 春期 データベーススペシャリスト試験 午前Ⅱ 問4

テクノロジ/データベース

関係データベース上に実装するエンティティの主キーが複合キーであり,複合キーを構成している属性数が多すぎるので,少なくして扱いやすくしたい。この場合の対応として,適切なものはどれか。

出典:平成22年度 春期 データベーススペシャリスト試験 午前Ⅱ 問4

正解:エ

解説

複合キーを構成する属性数が多すぎて扱いにくい場合,元の複合キーを連番などの代用のキー(サロゲートキー,surrogate key)に置き換えて主キーとし,元の複合キーを構成していた属性はそのまま代理キー(alternate key,一意性制約を保持する候補キー)として残す方法が一般的です。こうすることで,外部キーとして参照する際もキーが単純になり,扱いやすくなります。

選択肢ごとの解説

  • 誤り。複合キーを構成する属性の一部だけを主キーにすると,一意性が保証されなくなるおそれがあり,また残りの属性を外部キーにするのは適切な対応ではありません。
  • 誤り。複合キーを構成する属性の一部だけを主キーにする方法では,一意性の保証や属性数の削減という目的を適切に達成できません。
  • 誤り。複合キーをサロゲートキーに置き換えること自体は適切ですが,元の複合キーを構成していた属性を外部キーにするのではなく,一意性を保持する代理キー(alternate key)として扱うのが適切です。
  • 正しい。複合キーを連番などのサロゲートキーに置き換えて主キーとし,元の複合キーを構成していた属性は一意性制約をもつ代理キー(alternate key)として残すことで,キーを扱いやすくできます。
データベーススペシャリストの過去問を演習モードで解く