令和6年度 秋期 データベーススペシャリスト試験 午前II 問5
テクノロジデータベース
この問題は2024(R6)秋 データベーススペシャリスト 午前IIに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。
本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。
あるエンティティを関係データベース上に実装しようとしたとき,その主キーが多くの属性から構成される複合キーとなることが分かった。主キーとして扱う属性を少なくして扱いやすくしたい。この対応として,適切なものはどれか。
解答・解説を読む
正解: 選択肢ウ
正解は ウ です。
関係データベースの設計において、複数の属性から構成される主キーを 複合キー と呼びます。複合キーを構成する属性が多くなると、他のテーブルから外部キーとして参照する際や、検索・更新処理が複雑になるなどのデメリットが生じます。
この問題を解決するため、業務的な意味を持たない連番などを値とする新たな属性を追加し、それを単一の主キーとして扱う手法が有効です。このように人為的に追加されたキーを 代理キー (サロゲートキー) と呼びます。
各選択肢の解説
- ア: 誤り。複合キーの一部だけを主キーにすると、行を一意に識別できなくなる可能性があります。また、外部キーは他のテーブルの主キーを参照するためのものであり、この対応は不適切です。
- イ: 誤り。代替キーは、主キー候補でありながら主キーに選ばれなかったキーを指します。複合キーの一部を代替キーにしても、一意性の担保ができず、主キーを単純化する解決策になりません。
- ウ: 正しい。連番などを値としてとる列を新たに設けて主キー(代理キー)とすることで、主キーの扱いを容易にする適切な対応です。
- エ: 誤り。連番などを設けて主キーにする点は正しいですが、元の複合キーを他のテーブルを参照する「外部キー」に変更する理由はありません。