HOME»情報セキュリティスペシャリスト平成25年春期»午前Ⅰ 問11
情報セキュリティスペシャリスト平成25年春期 午前Ⅰ 問11
問11
"プログラマは全て社員であり,社員の約10%を占める。社員は社員番号と氏名をもち,職種がプログラマである場合は,使用できるプログラム言語を一つ以上もつ。"という状況を記録するデータベース設計案として,適切なものはどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。
- 社員(社員番号,氏名,職種,プログラム言語)
- 社員(社員番号,氏名,プログラム言語)
- 社員(社員番号,氏名)
プログラマ(社員番号,プログラム言語) - 社員(社員番号,氏名)
プログラマ(社員番号,プログラム言語)
- [出典]
- 応用情報技術者
平成25年春期 問28と同題
分類
テクノロジ系 » データベース » データベース設計
正解
エ
解説
プログラマは社員であるため、1つ以上の"プログラム言語"に加えて"社員番号"と"氏名"の属性を記録しなくてはなりません。したがって"社員番号"、"氏名"、"プログラム言語"の属性をもつプログラマ表は次のようになります。この状態では、"プログラム言語"が繰り返し項目になっているため第1正規化を行って重複項目を排除します。この状態で1つのレコードを特定するには"社員番号"と"プログラム言語"が必要なのでこの2つを組み合わせた複合キーが主キーになります。さらに"氏名"は"社員番号"に関数従属しているので、"氏名"列を別表に分離する第2正規化を行います。
このように順を追って完成した適切なデータベース設計が「エ」の表です。正解以外の表では、プログラム言語の複数記録に対応できません。
このように順を追って完成した適切なデータベース設計が「エ」の表です。正解以外の表では、プログラム言語の複数記録に対応できません。