データベーススペシャリスト平成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)という扱いになります。

したがって「エ」の記述が正解です。
  • 複合キーは、それを構成するすべての属性の値を使用しなければテーブルのレコードを同定できません。複合主キーのうち1つの属性だけでは一意性を満たせないので、主キーとして使用することはできません。
  • 「ア」と同じ理由で誤りです。
  • 外部キーは、他のテーブルの主キーを参照するために使用される属性なので用途が異なります。主キーに選ばれなかった候補キーは、オルタネートキーとなります。
  • 正しい。複合キーの代わりにサロゲートキーを主キーとします。元の複合キーはオルタネートキーとなります。

※本問では、サロゲートキーを代用キー、オルタネートキーを代理キーとしていますが、代理キー、代用キー、代替キーなど日本語での呼び方は必ずしも統一されていません。サロゲートキー、オルタネートキーのほうで覚えましょう。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop