博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  在初学者在学习数据库技术时,总绕不开1NF、2NF、3NF、BCNF以及4NF。书本对这些的描述就如天书一般难懂。以下是关于上述几种范式各自特点和区别的表格式总结,希望有初学者有帮助。不当之处,欢迎交流指正。
  

1NF、2NF、3NF、BCNF和4NF的特征

范式名称特征存在问题
1NF各属性不可再分非主属性部分依赖于码
2NF解决1NF存在问题,非主属性完全依赖于码非主属性传递依赖于码
3NF解决2NF问题,非主属性直接依赖于码主属性部分或传递依赖于码
BCNF解决3NF问题,主属性完全依赖于码存在多值依赖
4NF解决BNCF问题,各属性间没有非平凡且非函数依赖的多值依赖

  一般来说,如果只考虑函数依赖,规范化程度最高的是BCNF,也就是说,在数据库设计时,只要达到BCNF标准就可以了;在某些情况下如果要考虑多会依赖,则需要进一步优化到4NF。
  对于一些专业名词(如主属性、码等),可自行参阅相关文章,在此不再赘述。

参考文献:
  《第一范式、第二范式、第三范式、BCNF范式详解》