過去問解きまくり研究所 ホーム

令和6年度 秋期 午前Ⅱ 問5

データベース設計

主キーに関する問題

あるエンティティを関係データベース上に実装しようとしたとき,その主キーが多くの属性から構成される複合キーとなることが分かった。主キーとして扱う属性を少なくして扱いやすくしたい。この対応として,適切なものはどれか。

答えと解説を見る

✓ これが正解ウ連番などを値としてとる列を新たに設けて主キーとし,複合キーの代理キー(surrogate key)とする。

解説

連番の列を新設して主キーにし、複合キーの代理キーにします。

代理キーは、業務上の意味を持たない連番などの値を新しい列として設け、それを主キーとして使う方法です。多くの属性から成る複合キーは、ほかの表から参照するときに外部キーも多くの列になり、扱いにくくなります。代理キーを主キーにすれば、1列で行を識別できるので参照も簡単になります。このとき、元の複合キーはデータの一意性を表す大事な情報なので、捨てずに一意性の制約を付けて代替キーとして残すのが一般的です。見分ける軸は、少ない属性で行を一意に識別できるかどうかです。元の複合キーのうち一つの属性だけで識別できるなら、そもそも複合キーにはなっていなかったはずだと考えると、他の選択肢を外せます。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問5

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)