IPA過去問ドリル

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

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

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

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

正解:エ

解説

“プログラム言語を2種類以上使用できる従業員がいる”一方で“全く使用できない従業員もいる”という多対多に近い状況を表すには,“プログラム言語”表の主キーを{従業員番号,プログラム言語}の複合キーにする必要があります。こうすることで,1人の従業員に対して複数の言語の行を登録でき,使用できる言語がない従業員は単にこの表に行をもたないだけで表現できます。

選択肢ごとの解説

  • 誤り。氏名を主キーにすると,同姓同名の従業員を区別できず,また従業員番号との対応も表せないため適切ではありません。
  • 誤り。プログラム言語だけを主キーにすると,一つの言語につき従業員番号が一つしか登録できなくなり,2種類以上の言語を使用できる従業員を表現できません。
  • 誤り。従業員番号だけを主キーにすると,一人の従業員につきプログラム言語が一つしか登録できなくなり,2種類以上の言語を使用できる従業員を表現できません。
  • 正しい。{従業員番号,プログラム言語}を複合主キーにすることで,1人の従業員が複数の言語の行をもつことができ,かつ使用できる言語がない従業員は行が存在しないだけで表現できます。
データベーススペシャリストの過去問を演習モードで解く