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

テクノロジデータベース

この問題は2024(R6)秋 データベーススペシャリスト 午前IIに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

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

解答・解説を読む

正解: 選択肢

正解は です。

関係データベースの設計において、複数の属性から構成される主キーを 複合キー と呼びます。複合キーを構成する属性が多くなると、他のテーブルから外部キーとして参照する際や、検索・更新処理が複雑になるなどのデメリットが生じます。

この問題を解決するため、業務的な意味を持たない連番などを値とする新たな属性を追加し、それを単一の主キーとして扱う手法が有効です。このように人為的に追加されたキーを 代理キー (サロゲートキー) と呼びます。

各選択肢の解説

  • : 誤り。複合キーの一部だけを主キーにすると、行を一意に識別できなくなる可能性があります。また、外部キーは他のテーブルの主キーを参照するためのものであり、この対応は不適切です。
  • : 誤り。代替キーは、主キー候補でありながら主キーに選ばれなかったキーを指します。複合キーの一部を代替キーにしても、一意性の担保ができず、主キーを単純化する解決策になりません。
  • : 正しい。連番などを値としてとる列を新たに設けて主キー(代理キー)とすることで、主キーの扱いを容易にする適切な対応です。
  • : 誤り。連番などを設けて主キーにする点は正しいですが、元の複合キーを他のテーブルを参照する「外部キー」に変更する理由はありません。