“プログラマは全て社員であり、社員の約10%を占める。
社員は社員番号と氏名をもち、職種がプログラマである場合は、使用できるプログラム言語を一つ以上もつ。
”という状況を記録するデータベース設計案として、適切なものはどれか。
線の下線は主キーを、破線の下線は外部キーを表す。
ア | 社員 (社員番号, 氏名, 職種, プログラム言語) |
イ | 社員 (社員番号, 氏名, プログラム言語) |
ウ | 社員 (社員番号, 氏名) プログラマ (社員番号, プログラム言語) |
エ | 社員 (社員番号, 氏名) プログラマ (社員番号, プログラム言語) |
答え エ
【解説】
社員は社員番号と氏名を持つので、社員の表は
社員 (社員番号, 氏名)
になる。
社員の中でプログラマは使用できるプログラム言語が一つ以上持つので、社員の表にプログラム言語を持つことはできず、別のプログラマ表にする必要があり、社員の表とは社員番号で対応をとるようにする。
また、プログラマ表は一人の社員が複数のデータを持つので、ユニークな情報とするため、社員番号とプログラム言語を主キーにする必要があり
プログラマ (社員番号, プログラム言語)
になる。
【キーワード】
・主キー