応用情報技術者 2014年 春期 午前2 問27
問題文
次の表はどこまで正規化されたものか。

選択肢
ア:第2正規形(正解)
イ:第3正規形
ウ:第4正規形
エ:非正規形
正規化の段階判定問題【午前2 解説】
要点まとめ
- 結論:この表は第2正規形(2NF)まで正規化されている状態です。
- 根拠:主キーである「従業員番号」に対し、部分関数従属がなく、職位手当が職位にのみ依存しているため。
- 差がつくポイント:職位手当が主キー全体ではなく職位に依存している点を見抜けるかが鍵です。
正解の理由
この表は「従業員番号」を主キーとし、氏名や入社年、職位は従業員番号に完全関数従属しています。しかし「職位手当」は「職位」にのみ依存しており、主キーの一部に依存しているわけではありませんが、主キー以外の属性に依存しているため第3正規形(3NF)ではありません。したがって第2正規形(2NF)に該当し、選択肢の中ではア: 第2正規形が正解です。
よくある誤解
職位手当が主キーの一部に依存していると誤解し、第1正規形や非正規形と判断することがあります。
また、職位手当が主キーに完全に依存していると誤認し、第3正規形と誤答するケースも多いです。
また、職位手当が主キーに完全に依存していると誤認し、第3正規形と誤答するケースも多いです。
解法ステップ
- 主キーを特定する(この場合は「従業員番号」)。
- 各属性が主キーに完全関数従属しているか確認する。
- 主キー以外の属性に依存している属性(ここでは「職位手当」)を探す。
- 依存関係から正規形の段階を判定する。
選択肢別の誤答解説
- イ: 第3正規形
職位手当が職位に依存しているため、主キー以外の属性に依存しており3NFではありません。 - ウ: 第4正規形
4NFは多値従属の排除が条件であり、この表には該当しません。 - エ: 非正規形
表は明確に表形式であり、非正規形ではありません。
補足コラム
正規化はデータの冗長性を減らし、更新異常を防ぐための手法です。
第1正規形は繰り返しグループの排除、第2正規形は部分関数従属の排除、第3正規形は推移的関数従属の排除がポイントです。
今回のケースは職位手当が職位に依存しているため、3NFにするには職位手当を別テーブルに分割する必要があります。
第1正規形は繰り返しグループの排除、第2正規形は部分関数従属の排除、第3正規形は推移的関数従属の排除がポイントです。
今回のケースは職位手当が職位に依存しているため、3NFにするには職位手当を別テーブルに分割する必要があります。
FAQ
Q: 第2正規形と第3正規形の違いは何ですか?
A: 第2正規形は部分関数従属の排除、第3正規形は推移的関数従属の排除を意味します。
A: 第2正規形は部分関数従属の排除、第3正規形は推移的関数従属の排除を意味します。
Q: 職位手当のような属性はどのように扱うべきですか?
A: 職位手当は職位に依存するため、別テーブルに分割して管理するのが望ましいです。
A: 職位手当は職位に依存するため、別テーブルに分割して管理するのが望ましいです。
関連キーワード: 正規化、第2正規形、第3正規形、関数従属、データベース設計

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

