理解1NF、2NF、3NF、BCNF
-
第一范式 1NF
满足:一个关系模式R的所有属性都是不可分的基本数据项 ,即为第一范式
-
第二范式 2NF
满足:为1NF 且 非主属性 完全函数依赖 于码 ,即为第二范式
-
第三范式 3NF
满足:为2NF 且 每个非主属性既不部分依赖于码也不传递依赖于码 ,即为第三范式
-
BC范式 BCNF
满足:为3NF 且 每个主属性既不部分依赖于码也不传递依赖于码 、没有任何属性完全函数依赖于非码的任何一组属性 ,即为第三范式 换句话理解,就是说:在满足3NF的前提上,还要保证某个主属性不能 传递/部分依赖 于 其他主属性;属性不能完全函数依赖 于非主属性 再通俗讲:就是X→Y时,X一定含有码(候选码中的任意一个)
判断范式等级
- 首先需要判断关系模式 R 的候选码
- 判断是否有非主属性对码的部分函数依赖 ——> 判断 2NF
- 判断是否有非主属性对码的传递函数依赖 ——> 判断 3NF
不合法范式的修改
- 1NF 到 2NF :消除非主属性对码的部分函数依赖即可,即将码 (S,F )拆分生成两个表,码分别为 S、F
- 2NF 到 3NF:消除非主属性对码的传递函数依赖即可,将存在传递依赖的属性单独拆分出来
- 3NF 到 BCNF:消除主属性对码的/部分传递函数依赖即可
文中例题来源:https://blog.csdn.net/weixin_43950187/article/details/105513528
标签:3NF,非主,范式,数据库,2NF,依赖,规范化,属性 From: https://www.cnblogs.com/nixwl/p/17044869.html