令和7年度 秋期 データベーススペシャリスト試験 午前II 問4
テクノロジデータベース
この問題は2025(R7)秋 データベーススペシャリスト 午前IIに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。
本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。
従業員の,従業員番号,氏名及び使用できるプログラム言語を管理するために,“従業員”表及び“プログラム言語”表を設計する。“プログラム言語を2種類以上使用できる従業員がいる。プログラム言語を全く使用できない従業員もいる。”という状況を管理する“プログラム言語”表の設計として,適切なものはどれか。ここで,実線の下線は主キーを表す。
〔従業員表〕
従業員(従業員番号,氏名)
解答・解説を読む
正解: 選択肢エ
この問題は、データベースのテーブル設計において、1対多の関係(1人の従業員が複数のプログラム言語を使用する状況)を表現するための主キーの適切な設定方法を問うものです。
従業員表では、従業員を識別するために「従業員番号」が主キーとして設定されています。
一方、設問の「プログラム言語」表では、1人の従業員が複数のプログラム言語を使用できるという要件を満たす必要があります。
正解の根拠
- 1人の従業員(同じ「従業員番号」)に対して、複数のプログラム言語が登録される可能性があります。
- 単一の「従業員番号」だけを主キーにすると、2つ以上のプログラム言語を登録しようとした際に主キー制約(一意性)違反となり、エラーになってしまいます。
- したがって、「従業員番号」と「プログラム言語」の両方を組み合わせた複合主キーにすることで、同じ従業員であっても異なる言語であれば別のレコードとして管理できるようになります。
- よって、複合主キーとなっている エ が適切です。
各選択肢の解説
- ア: 氏名を主キーにしていますが、同姓同名の従業員がいる場合に区別できず、また1人が複数の言語を持つ場合にも主キー制約違反となるため不適切です。
- イ: プログラム言語を主キーにしていますが、これでは同じプログラム言語を使用する複数の従業員を登録できず、主キー制約違反となるため不適切です。
- ウ: 従業員番号を主キーにしていますが、これでは1人の従業員が2種類以上の言語を使用する場合に同じ従業員番号が重複してしまい、主キー制約違反となるため不適切です。
- エ: 正解です。「従業員番号」と「プログラム言語」の組み合わせを主キーにすることで、1人が複数の言語を使用する状況を矛盾なく管理できます。