HOME»データベーススペシャリスト平成22年春期»午前Ⅱ 問4
データベーススペシャリスト平成22年春期 午前Ⅱ 問4
問4
関係データベース上に実装するエンティティの主キーが複合キーであり,複合キーを構成している属性数が多すぎるので,少なくして扱いやすくしたい。この場合の対応として,適切なものはどれか。
- 複合キーを構成している属性のうち,エンティティの性格を最もよく表している属性を主キーとし,残りの属性を外部キーにする。
- 複合キーを構成している属性のうち,エンティティの性格を最もよく表している属性を主キーとし,残りの属性を代理キー(alternate key)にする。
- 複合キーを連番など代用のキー(surrogate key)に置き換え,複合キーを構成している属性を外部キーにする。
- 複合キーを連番など代用のキー(surrogate key)に置き換え,複合キーを構成している属性を代理キー(alternate key)にする。
- [出題歴]
- データベース R6秋期 問5
- データベース H16春期 問27
- データベース H18春期 問26
- データベース H20春期 問30
分類
テクノロジ系 » データベース » データベース設計
正解
エ
解説
複合キーは、複数の属性を組み合わせて主キーとして用いる方法です。複合キーには既存の属性だけでテーブルを構成できるという利点がありますが、主キーの属性数が多すぎると、❶SQLの結合演算記述が煩雑になる、❷テーブル間の依存度が高くなる、❸コードの仕様変更の影響を受けやすい、などの問題が生じる可能性があります。
このような問題を避けたい場合、レコードを一意に識別できる新たな属性を加え、それで主キーを置き換える方法が採用されます。このようにして追加された主キーはサロゲートキー(surrogate key)と呼ばれ、通常は連番コードなど、容易に一意性を持たせられるものが選ばれます。注文番号や会社IDなど、値自体に特定の業務的意味を持たないものが典型的な例です。
サロゲートキーが主キーとなった場合、元の複合キーは主キーではなくなります。このように、主キーの条件を満たしていながら主キーに選ばれなかった属性は、オルタネートキー(alternate key)という扱いになります。
したがって「エ」の記述が正解です。
※本問では、サロゲートキーを代用キー、オルタネートキーを代理キーとしていますが、代理キー、代用キー、代替キーなど日本語での呼び方は必ずしも統一されていません。サロゲートキー、オルタネートキーのほうで覚えましょう。
このような問題を避けたい場合、レコードを一意に識別できる新たな属性を加え、それで主キーを置き換える方法が採用されます。このようにして追加された主キーはサロゲートキー(surrogate key)と呼ばれ、通常は連番コードなど、容易に一意性を持たせられるものが選ばれます。注文番号や会社IDなど、値自体に特定の業務的意味を持たないものが典型的な例です。
サロゲートキーが主キーとなった場合、元の複合キーは主キーではなくなります。このように、主キーの条件を満たしていながら主キーに選ばれなかった属性は、オルタネートキー(alternate key)という扱いになります。
したがって「エ」の記述が正解です。
- 複合キーは、それを構成するすべての属性の値を使用しなければテーブルのレコードを同定できません。複合主キーのうち1つの属性だけでは一意性を満たせないので、主キーとして使用することはできません。
- 「ア」と同じ理由で誤りです。
- 外部キーは、他のテーブルの主キーを参照するために使用される属性なので用途が異なります。主キーに選ばれなかった候補キーは、オルタネートキーとなります。
- 正しい。複合キーの代わりにサロゲートキーを主キーとします。元の複合キーはオルタネートキーとなります。
※本問では、サロゲートキーを代用キー、オルタネートキーを代理キーとしていますが、代理キー、代用キー、代替キーなど日本語での呼び方は必ずしも統一されていません。サロゲートキー、オルタネートキーのほうで覚えましょう。