データベース設計 (全54問中17問目)

No.17

"プログラマは全て社員であり,社員の約10%を占める。社員は社員番号と氏名をもち,職種がプログラマである場合は,使用できるプログラム言語を一つ以上もつ。"という状況を記録するデータベース設計案として,適切なものはどれか。線の下線は主キーを,破線の下線は外部キーを表す。

分類

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

正解

解説

プログラマ社員であるため、1つ以上の"プログラム言語"に加えて"社員番号"と"氏名"の属性を記録しなくてはなりません。したがって"社員番号"、"氏名"、"プログラム言語"の属性をもつプログラマ表は次のようになります。
28_1.gif/image-size:469×82
この状態では、"プログラム言語"が繰り返し項目になっているため第1正規化を行って重複項目を排除します。
28_2.gif/image-size:259×123
この状態で1つのレコードを特定するには"社員番号"と"プログラム言語"が必要なのでこの2つを組み合わせた複合キーが主キーになります。
28_3.gif/image-size:259×122
さらに"氏名"は"社員番号"に関数従属しているので、"氏名"列を別表に分離する第2正規化を行います。
このように順を追って完成した適切なデータベース設計が「エ」の表です。正解以外の表では、プログラム言語の複数記録に対応できません。
28_4.gif/image-size:361×122
© 2010-2019 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop