ホーム > データベーススペシャリスト試験 > 2014年
データベーススペシャリスト試験 2014年 午前2 問06
第3正規形において存在する可能性のある関数従属はどれか。
ア:候補キーから繰返し属性への関数従属
イ:候補キーの真部分集合から他の候補キーの真部分集合への関数従属(正解)
ウ:候補キーの真部分集合から非キー属性への関数従属
エ:非キー属性から他の非キー属性への関数従属
解説
第3正規形において存在する可能性のある関数従属はどれか【午前2 解説】
要点まとめ
- 結論:第3正規形(3NF)では候補キーの真部分集合から他の候補キーの真部分集合への関数従属は存在しうる。
- 根拠:3NFは非キー属性の部分関数従属や推移的関数従属を排除するが、候補キー間の関数従属は許容される。
- 差がつくポイント:候補キーの真部分集合から非キー属性への関数従属は3NF違反、非キー属性間の関数従属も3NF違反である点を理解すること。
正解の理由
第3正規形は「非キー属性が候補キーに対して完全関数従属し、かつ推移的関数従属を持たない」ことを条件とします。
候補キーの真部分集合から他の候補キーの真部分集合への関数従属は、キー属性同士の関係であり、3NFの制約対象外です。
したがって、選択肢イの関数従属は第3正規形において存在する可能性があります。
候補キーの真部分集合から他の候補キーの真部分集合への関数従属は、キー属性同士の関係であり、3NFの制約対象外です。
したがって、選択肢イの関数従属は第3正規形において存在する可能性があります。
よくある誤解
非キー属性間の関数従属は3NF違反と誤解されがちですが、3NFは非キー属性の推移的従属を排除するため、非キー属性間の関数従属は基本的に認められません。
解法ステップ
- 第3正規形の定義を確認する(非キー属性の完全関数従属と推移的関数従属の排除)。
- 各選択肢の関数従属の種類をキー属性か非キー属性かで分類する。
- 候補キーの真部分集合から非キー属性への関数従属は3NF違反と判断する。
- 非キー属性から他の非キー属性への関数従属も3NF違反と判断する。
- 候補キー間の関数従属は3NFで許容されるため正解とする。
選択肢別の誤答解説
- ア: 候補キーから繰返し属性への関数従属は繰返し属性の存在自体が正規化違反の可能性が高く、3NFの条件に合わない。
- イ: 候補キーの真部分集合から他の候補キーの真部分集合への関数従属は3NFで許容されるため正解。
- ウ: 候補キーの真部分集合から非キー属性への関数従属は部分関数従属に該当し、3NF違反。
- エ: 非キー属性から他の非キー属性への関数従属は推移的関数従属に該当し、3NF違反。
補足コラム
第3正規形は第2正規形の条件に加え、非キー属性間の推移的関数従属を排除することで、データの冗長性と更新異常を防ぎます。
候補キー間の関数従属は、キーの候補が複数存在する場合に起こりうるもので、3NFでは許容されますが、ボイス・コッド正規形(BCNF)ではさらに厳しく制約されます。
候補キー間の関数従属は、キーの候補が複数存在する場合に起こりうるもので、3NFでは許容されますが、ボイス・コッド正規形(BCNF)ではさらに厳しく制約されます。
FAQ
Q: 第3正規形とボイス・コッド正規形の違いは何ですか?
A: 3NFは非キー属性の推移的関数従属を排除しますが、BCNFはすべての関数従属の左側がスーパーキーであることを要求し、より厳格です。
A: 3NFは非キー属性の推移的関数従属を排除しますが、BCNFはすべての関数従属の左側がスーパーキーであることを要求し、より厳格です。
Q: 候補キーの真部分集合から非キー属性への関数従属はなぜ3NF違反ですか?
A: それは部分関数従属に該当し、非キー属性が候補キーの一部にのみ依存しているため、3NFの条件を満たしません。
A: それは部分関数従属に該当し、非キー属性が候補キーの一部にのみ依存しているため、3NFの条件を満たしません。
関連キーワード: 第3正規形, 関数従属, 候補キー, 正規化, 推移的関数従属, 部分関数従属