令和5年度 秋期 データベーススペシャリスト試験 午前II 問5
2025年6月30日
【問題5】
従業員番号と氏名と使用できるプログラム言語を管理するために,“従業員”表及び“プログラム言語”表を設計する。“プログラム言語を2種類以上使用できる従業員がいる。プログラム言語を全く使用できない従業員もいる。”という状況を管理する“プログラム言語”表の設計として,適切なものはどれか。ここで,実線の下線は主キーを表す。
従業員番号とプログラム言語の組み合わせを主キーとして使用する。
【解説】
この問題では、従業員とプログラム言語の関係を適切に管理するための「プログラム言語」表の設計を検討します。ポイントは以下の通りです。
- 多対多の関係: 一人の従業員が複数のプログラム言語を使用でき、同時に一つのプログラム言語を複数の従業員が使用する可能性があります。このような多対多の関係を適切に管理するためには、従業員番号とプログラム言語の組み合わせを主キーとする中間テーブルを設計することが一般的です。
- 主キーの選定: 主キーは各レコードを一意に識別するためのものであり、適切な属性を選択する必要があります。
各選択肢の評価
- ア: 氏名を主キーとして使用する。
誤り。氏名を主キーの一部としていますが、同姓同名の従業員が存在する可能性があるため、氏名を主キーとするのは不適切です。また、氏名は一意性を保証しません。
- イ: 従業員番号を主キーとして使用する。
誤り。主キーが明示されていませんが、仮に従業員番号を主キーとすると、一人の従業員が複数のプログラム言語を使用する場合に対応できません。
- ウ: プログラム言語を主キーとして使用する。
誤り。主キーが明示されていませんが、仮にプログラム言語を主キーとすると、一つのプログラム言語を複数の従業員が使用する場合に対応できません。
- エ: 従業員番号とプログラム言語の組み合わせを主キーとして使用する。
正しい。従業員番号とプログラム言語の組み合わせを主キーとすることで、一人の従業員が複数のプログラム言語を使用する場合や、プログラム言語を全く使用しない従業員がいる場合にも対応できます。
【答え】
エ: 従業員番号とプログラム言語の組み合わせを主キーとして使用する。
出典:令和5年度 秋期 データベーススペシャリスト試験 午前II 問5