データベーススペシャリスト試験 令和5年度 秋期 午前II 問5
従業員番号と氏名と使用できるプログラム言語を管理するために、"従業員"表及び"プログラム言語"表を設計する。"プログラム言語を2種類以上使用できる従業員がいる。プログラム言語を全く使用できない従業員もいる。"という状況を管理する"プログラム言語"表の設計として、適切なものはどれか。ここで、実線の下線は主キーを表す。 〔従業員表〕 従業員(従業員番号、氏名)
選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】エ
画像のエでは、従業員番号とプログラム言語の両方に実線の下線があり、この二つを組み合わせた複合主キーになっています。同じ従業員が複数の言語を使用できる場合は、言語ごとに別の行を登録します。同一の従業員番号でもプログラム言語が異なれば主キー全体は異なるので、複数行を保持できます。また、同じ言語を複数の従業員が使用しても、従業員番号が異なるため登録できます。言語を全く使用できない従業員は従業員表だけに存在させればよく、プログラム言語表に行を作る必要はありません。したがって、エが正解です。
アの設計は誤りです。画像では氏名だけが主キーです。氏名は同姓同名があり得る上、従業員表の主キーである従業員番号と対応付けられません。また、同じ氏名で複数言語を登録できません。
イの設計は誤りです。画像ではプログラム言語だけが主キーです。この設計では、例えばJavaを使用できる従業員を1人しか登録できません。
ウの設計は誤りです。画像では従業員番号だけが主キーです。この設計では、同じ従業員番号の行を複数作れないため、1人に複数の言語を登録できません。
【ポイント】 多対多の関係は、両側の主キーをもつ対応表によって表現します。 対応表では、二つの外部キーを組み合わせて複合主キーとする設計が基本です。 対応がない従業員は、対応表にNULLの行を作らず、行そのものを登録しません。
出典:令和5年度 秋期 データベーススペシャリスト試験 午前II 問5
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の25問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる