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

問5

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

〔従業員表〕
 従業員 (従業員番号,氏名)
  • プログラム言語 (氏名,プログラム言語)
  • プログラム言語 (従業員番号,プログラム言語)
  • プログラム言語 (従業員番号,プログラム言語)
  • プログラム言語 (従業員番号プログラム言語)

分類

テクノロジ系 » データベース » データベース設計

正解

解説

  • "プログラム言語"表の主キーを氏名にすると、同じ氏名の値を持つ複数の行を登録できません。これでは、一つの氏名に一つのプログラム言語しか関連付けられません。また、"従業員"表と"プログラム言語"表の参照制約により、プログラム言語を使用できない従業員もプ"ログラム言語"表に登録する必要があります。さらに、同姓同名の従業員が存在する可能性を考えると、そもそも氏名を主キーにするのは不適切です。
  • "プログラム言語"表の主キーをプログラム言語にすると、同じプログラム言語の値を持つ複数の行を登録できません。これでは、一つのプログラム言語を一つの従業員番号としか関連付けられず、一人の従業員が2種類以上のプログラム言語を使用する状況の管理には不適切です。
  • "プログラム言語"表の主キーが従業員番号にすると、同じ従業員番号の値を持つ複数の行を登録できません。これでは、一つの従業員番号を1つのプログラム言語としか関連付けられず、一人の従業員が2種類以上のプログラム言語を使用する状況の管理には不適切です。
  • 正しい。従業員番号とプログラム言語の関係は多対多なので、その組合せを管理するには従業員番号とプログラム言語の複合主キーの表を使用する必要があります。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop