あるエンティティを関係データベース上に実装しようとしたとき、その主キーが多くの属性から構成される複合キーとなることが分かった。 主キーとして扱う属性を少なくして扱いやすくしたい。 この対応として、適切なものはどれか。
| ア | 複合キーを構成する属性のうち、エンティティの性格を最もよく表している一つの属性を主キーとし、残りの属性を外部キー(foreign key)にする。 |
| イ | 複合キーを構成する属性のうち、エンティティの性格を最もよく表している一つの属性を主キーとし、残りの属性を代替キー(alternate key)とする。 |
| ウ | 連番などを値としてとる列を新たに設けて主キーとし、複合キーの代理キー(surrogate key)とする。 |
| エ | 連番などを値としてとる列を新たに設けて主キーとし、複合キーの外部キー(foreign key)にする。 |
答え ウ
【解説】
| ア | 複合キーすべてが揃って主キーになっているので、一部を外部キーにすることはできません。(×) |
| イ | 複合キーすべてが揃って主キーになっているので、一部を代理キーにすることはできません。(×) |
| ウ | 複合キーを連番などの代用キーに置き換え、複合キーを代理キーにすることは可能です。(〇) |
| エ | 複合キーを外部キーにすることが可能とは限りません。(×) |
【キーワード】
・複合キー