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