令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問5
テクノロジ/データベース従業員番号と氏名と使用できるプログラム言語を管理するために,“従業員”表及び“プログラム言語”表を設計する。“プログラム言語を 2 種類以上使用できる従業員がいる。プログラム言語を全く使用できない従業員もいる。”という状況を管理する“プログラム言語”表の設計として,適切なものはどれか。ここで,実線の下線は主キーを表す。 〔従業員表〕 従業員(従業員番号, 氏名) ※従業員番号が主キー

出典:令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問5
- ア図ア
- イ図イ
- ウ図ウ
- エ図エ
正解:エ
解説
1 人の従業員が複数のプログラム言語を使用でき,かつ使用できる言語が 0 件の従業員もいるので,従業員とプログラム言語は多対多の関係になります。この関係を表すには“プログラム言語”表を従業員番号とプログラム言語の 2 列で構成し,その組合せ全体を複合主キーとする必要があります。従業員番号だけ,またはプログラム言語だけを主キーにすると,1 従業員に複数言語を登録できなくなったり,同じ言語を複数従業員に登録できなくなったりします。
選択肢ごとの解説
- ア誤り。氏名は同姓同名があり得て従業員を一意に識別できないうえ,氏名だけを主キーにすると 1 人に複数の言語を登録できません。
- イ誤り。プログラム言語だけを主キーにすると,同じ言語を使用できる従業員を 1 人しか登録できません。
- ウ誤り。従業員番号だけを主キーにすると,1 人の従業員に 2 種類以上のプログラム言語を登録できません。
- エ正しい。従業員番号とプログラム言語の組を複合主キーとすることで,多対多の関係を過不足なく表現できます。