令和6年度 秋期 データベーススペシャリスト試験 午前II 問5
2025年6月26日
【問題5】
あるエンティティを関係データベース上に実装しようとしたとき,その主キーが多くの属性から構成される複合キーとなることが分かった。主キーとして扱う属性を少なくして扱いやすくしたい。この対応として,適切なものはどれか。
複合キーを構成する属性のうち,エンティティの性格を最もよく表している一つの属性を主キーとし,残りの属性を外部キー(foreign key)にする。
複合キーを構成する属性のうち,エンティティの性格を最もよく表している一つの属性を主キーとし,残りの属性を代替キー(alternate key)とする。
連番などを値としてとる列を新たに設けて主キーとし,複合キーの代理キー(surrogate key)とする。
連番などを値としてとる列を新たに設けて主キーとし,複合キーを外部キー(foreign key)にする。
【解説】
ア: 複合キーを構成する属性のうち,エンティティの性格を最もよく表している一つの属性を主キーとし,残りの属性を外部キー(foreign key)にする。
誤り。複合キー全体を主キーとして扱うべき場合には不適切です。外部キーとして分離することで意味が失われる可能性があります。
イ: 複合キーを構成する属性のうち,エンティティの性格を最もよく表している一つの属性を主キーとし,残りの属性を代替キー(alternate key)とする。
誤り。複合キーを単一の主キーに分割する場合の適切な解決方法ではありません。
ウ: 連番などを値としてとる列を新たに設けて主キーとし,複合キーの代理キー(surrogate key)とする。
正しい。代理キー(surrogate key)を使用することで、主キーの扱いやすさが向上します。
エ: 連番などを値としてとる列を新たに設けて主キーとし,複合キーを外部キー(foreign key)にする。
誤り。複合キー全体を外部キーとして残す理由が明確ではなく、通常は代理キーに置き換えるだけで十分です。
【答え】
ウ: 連番などを値としてとる列を新たに設けて主キーとし,複合キーの代理キー(surrogate key)とする。
出典:令和6年度 秋期 データベーススペシャリスト試験 午前II 問5