平成22年度 春期 データベーススペシャリスト試験 午前Ⅱ 問4
テクノロジ/データベース関係データベース上に実装するエンティティの主キーが複合キーであり,複合キーを構成している属性数が多すぎるので,少なくして扱いやすくしたい。この場合の対応として,適切なものはどれか。
出典:平成22年度 春期 データベーススペシャリスト試験 午前Ⅱ 問4
- ア複合キーを構成している属性のうち,エンティティの性格を最もよく表している属性を主キーとし,残りの属性を外部キーにする。
- イ複合キーを構成している属性のうち,エンティティの性格を最もよく表している属性を主キーとし,残りの属性を代理キー(alternate key)にする。
- ウ複合キーを連番など代用のキー(surrogate key)に置き換え,複合キーを構成している属性を外部キーにする。
- エ複合キーを連番など代用のキー(surrogate key)に置き換え,複合キーを構成している属性を代理キー(alternate key)にする。
正解:エ
解説
複合キーを構成する属性数が多すぎて扱いにくい場合,元の複合キーを連番などの代用のキー(サロゲートキー,surrogate key)に置き換えて主キーとし,元の複合キーを構成していた属性はそのまま代理キー(alternate key,一意性制約を保持する候補キー)として残す方法が一般的です。こうすることで,外部キーとして参照する際もキーが単純になり,扱いやすくなります。
選択肢ごとの解説
- ア誤り。複合キーを構成する属性の一部だけを主キーにすると,一意性が保証されなくなるおそれがあり,また残りの属性を外部キーにするのは適切な対応ではありません。
- イ誤り。複合キーを構成する属性の一部だけを主キーにする方法では,一意性の保証や属性数の削減という目的を適切に達成できません。
- ウ誤り。複合キーをサロゲートキーに置き換えること自体は適切ですが,元の複合キーを構成していた属性を外部キーにするのではなく,一意性を保持する代理キー(alternate key)として扱うのが適切です。
- エ正しい。複合キーを連番などのサロゲートキーに置き換えて主キーとし,元の複合キーを構成していた属性は一意性制約をもつ代理キー(alternate key)として残すことで,キーを扱いやすくできます。