数据库——范式等级的判断和规范化

理解1NF、2NF、3NF、BCNF

  1. 第一范式 1NF

    满足:一个关系模式R的所有属性都是不可分的基本数据项 ,即为第一范式
    
  2. 第二范式 2NF

    满足:为1NF 且 非主属性 完全函数依赖 于码 ,即为第二范式
    
  3. 第三范式 3NF

     满足:为2NF 且 每个非主属性既不部分依赖于码也不传递依赖于码 ,即为第三范式
    
  4. BC范式 BCNF

    满足:为3NF 且 每个主属性既不部分依赖于码也不传递依赖于码 、没有任何属性完全函数依赖于非码的任何一组属性 ,即为第三范式
    换句话理解,就是说:在满足3NF的前提上,还要保证某个主属性不能 传递/部分依赖 于 其他主属性;属性不能完全函数依赖 于非主属性
    再通俗讲:就是X→Y时,X一定含有码(候选码中的任意一个)
    

判断范式等级

  • 首先需要判断关系模式 R 的候选码
  • 判断是否有非主属性对码的部分函数依赖 ——> 判断 2NF
  • 判断是否有非主属性对码的传递函数依赖 ——> 判断 3NF

image.png

image.png

不合法范式的修改

  • 1NF 到 2NF :消除非主属性对码的部分函数依赖即可,即将码 (S,F )拆分生成两个表,码分别为 S、F
  • 2NF 到 3NF:消除非主属性对码的传递函数依赖即可,将存在传递依赖的属性单独拆分出来
  • 3NF 到 BCNF:消除主属性对码的/部分传递函数依赖即可

文中例题来源:https://blog.csdn.net/weixin_43950187/article/details/105513528

posted @ 2023-01-11 20:45  nixwl  阅读(1078)  评论(0)    收藏  举报