IPA過去問ドリル

令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問5

テクノロジ/データベース

従業員番号と氏名と使用できるプログラム言語を管理するために,“従業員”表及び“プログラム言語”表を設計する。“プログラム言語を 2 種類以上使用できる従業員がいる。プログラム言語を全く使用できない従業員もいる。”という状況を管理する“プログラム言語”表の設計として,適切なものはどれか。ここで,実線の下線は主キーを表す。 〔従業員表〕 従業員(従業員番号, 氏名) ※従業員番号が主キー

令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問5の図

出典:令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問5

正解:エ

解説

1 人の従業員が複数のプログラム言語を使用でき,かつ使用できる言語が 0 件の従業員もいるので,従業員とプログラム言語は多対多の関係になります。この関係を表すには“プログラム言語”表を従業員番号とプログラム言語の 2 列で構成し,その組合せ全体を複合主キーとする必要があります。従業員番号だけ,またはプログラム言語だけを主キーにすると,1 従業員に複数言語を登録できなくなったり,同じ言語を複数従業員に登録できなくなったりします。

選択肢ごとの解説

  • 誤り。氏名は同姓同名があり得て従業員を一意に識別できないうえ,氏名だけを主キーにすると 1 人に複数の言語を登録できません。
  • 誤り。プログラム言語だけを主キーにすると,同じ言語を使用できる従業員を 1 人しか登録できません。
  • 誤り。従業員番号だけを主キーにすると,1 人の従業員に 2 種類以上のプログラム言語を登録できません。
  • 正しい。従業員番号とプログラム言語の組を複合主キーとすることで,多対多の関係を過不足なく表現できます。
データベーススペシャリストの過去問を演習モードで解く