SkillStack
テクノロジ系5 / 25問

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

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

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ウ

多くの属性から成る複合キーは、他の表から参照するときにも多数の外部キー列が必要となり、結合条件や更新処理が複雑になります。そこで、業務上の意味をもたない連番などの列を追加し、その列を主キーとして使用します。この人工的なキーを代理キー、すなわちサロゲートキーといいます。主キーを一列にできるため、参照や結合を簡潔にできます。したがって、ウが適切です。なお、元の複合キーが表す業務上の一意性は失わないように、通常は複合UNIQUE制約などで保持します。

アの方法は誤りです。複合キーの一部だけでは行を一意に識別できない可能性があるため、その属性を主キーにはできません。また、外部キーは別の表の主キー又は候補キーを参照する列であり、複合キーから外した属性が自動的に外部キーになるわけではありません。

イの方法は誤りです。代替キーは、候補キーのうち主キーとして選ばれなかったキーです。複合キーの一属性だけに一意性がなければ主キーにはできず、残りの属性も単に指定するだけで代替キーになるものではありません。

エの方法は誤りです。連番を主キーにする点は代理キーの導入ですが、元の複合キーを外部キーにする必要はありません。参照先となる別の表が存在しない限り、外部キーにはできません。元の複合キーは、業務上の一意性を保証する代替キーとして扱うのが適切です。

【ポイント】 自然キーは業務上の属性から成るキーで、代理キーは連番など人工的に追加したキーです。 代理キーを採用しても、自然キーの重複を許してよいとは限りません。 主キーと候補キーには一意性が必要ですが、外部キーには参照先との整合性が必要です。

出典:令和6年度 秋期 データベーススペシャリスト試験 午前II 問5
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める