ホーム > データベーススペシャリスト試験 > 2017年
データベーススペシャリスト試験 2017年 午前2 問07
第2正規形であるが第3正規形でない表はどれか。ここで, 講義名に対して担当教員は一意に決まり, 所属コードに対して勤務地は一意に決まるものとする。また, { }は繰返し項目を表し, 実線の下線は主キーを表す。

ア:
イ:
ウ:(正解)
エ:
解説
第2正規形であるが第3正規形でない表はどれか【午前2 解説】
要点まとめ
- 結論:選択肢ウは第2正規形(2NF)だが第3正規形(3NF)ではない表である。
- 根拠:所属コード→勤務地の関数従属があり、主キー以外の列に対する推移的関数従属が存在するため3NF違反となる。
- 差がつくポイント:2NFと3NFの違いを理解し、推移的関数従属の有無を見抜くことが重要である。
正解の理由
選択肢ウの表は「社員番号」が主キーであり、すべての非キー属性は社員番号に完全関数従属しているため第2正規形を満たしています。しかし、「所属コード」から「勤務地」が一意に決まるため、「勤務地」は主キーではない「所属コード」に依存しています。これは推移的関数従属に該当し、第3正規形の要件を満たしていません。したがって、ウが正解です。
よくある誤解
第2正規形と第3正規形の違いを「部分関数従属」だけで判断しがちですが、推移的関数従属の存在も見逃さないことが重要です。
解法ステップ
- 主キーを特定する(例:社員番号)。
- 非キー属性が主キーに完全関数従属しているか確認する(部分関数従属の有無)。
- 非キー属性間の関数従属(推移的関数従属)がないか調べる。
- 推移的関数従属があれば第3正規形ではないと判断する。
- 各選択肢で上記を適用し、条件に合う表を選ぶ。
選択肢別の誤答解説
- ア:講義名→担当教員が一意に決まるため、部分関数従属はない。推移的関数従属もなく3NFを満たす。
- イ:社員番号が主キーで、他の属性は社員番号に完全関数従属。推移的関数従属もないため3NF。
- ウ:社員番号が主キーで第2正規形は満たすが、所属コード→勤務地の推移的関数従属があり3NF違反。
- エ:趣味が繰返し項目で正規化されていないため、第1正規形すら満たしていない。
補足コラム
正規化はデータの冗長性を減らし、更新異常を防ぐための手法です。第2正規形は「部分関数従属の排除」、第3正規形は「推移的関数従属の排除」がポイントです。推移的関数従属とは、非キー属性が他の非キー属性に依存する関係を指します。
FAQ
Q: 第2正規形と第3正規形の違いは何ですか?
A: 第2正規形は主キーの一部に依存する部分関数従属を排除し、第3正規形は非キー属性間の推移的関数従属を排除します。
A: 第2正規形は主キーの一部に依存する部分関数従属を排除し、第3正規形は非キー属性間の推移的関数従属を排除します。
Q: 推移的関数従属があると何が問題ですか?
A: データの冗長性が増え、更新時に矛盾や異常が発生しやすくなります。
A: データの冗長性が増え、更新時に矛盾や異常が発生しやすくなります。
関連キーワード: 正規化, 第2正規形, 第3正規形, 関数従属, 推移的関数従属, データベース設計