問題
選択肢
- 1社員(社員番号、氏名、職種、プログラム言語)〔主キー:社員番号〕
- 2社員(社員番号、氏名、プログラム言語)〔主キー:社員番号とプログラム言語の組〕
- 3社員(社員番号、氏名)〔主キー:社員番号〕/プログラマ(社員番号、プログラム言語)〔主キー:社員番号。社員番号は社員表への外部キー〕
- 4社員(社員番号、氏名)〔主キー:社員番号〕/プログラマ(社員番号、プログラム言語)〔主キー:社員番号とプログラム言語の組。社員番号は社員表への外部キー〕
正解
4. 社員(社員番号、氏名)〔主キー:社員番号〕/プログラマ(社員番号、プログラム言語)〔主キー:社員番号とプログラム言語の組。社員番号は社員表への外部キー〕
詳しい解説を見る解説を閉じる
解説
一人のプログラマが複数のプログラム言語をもち得るため、アのように社員表に言語列を1つ置くと複数言語を表せず、イのように全社員の表に言語を含めるとプログラマ以外の行で空値が生じるうえ氏名が部分関数従属となり不適切である。ウはプログラマ表の主キーが社員番号のみのため、1人につき1行しか登録できず「一つ以上(複数)の言語」を扱えない。エは社員(社員番号、氏名)と、社員番号とプログラム言語の組を主キーとするプログラマ表(社員番号は社員表への外部キー)に分けており、複数言語を正しく扱える正規化された設計である。よってエが正解。(出典: 平成25年度 春期 応用情報技術者試験 午前 問28)
一問一答
全400問を繰り返し学習