关系型数据库设计三大范式

💡 原文中文,约2900字,阅读约需7分钟。
📝

内容提要

文章介绍了关系数据库的三种范式:第一范式要求属性不可分割,第二范式避免部分函数依赖,第三范式消除传递函数依赖。范式的优点是降低数据冗余,但查询时需使用Join。反范式设计可以适度保留冗余数据以提高查询效率。

🎯

关键要点

  • 范式定义:设计关系数据库时遵循的规范要求,主要包括第一范式、第二范式和第三范式。
  • 范式的优点:降低数据冗余性,确保数据一致性。
  • 范式的缺点:查询时需要通过Join拼接数据。
  • 目前业界范式分类:包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等。
  • 完全函数依赖:某个属性集完全依赖于另一个属性集。
  • 部分函数依赖:某个属性集部分依赖于另一个属性集。
  • 传递函数依赖:某个属性集通过另一个属性集间接依赖。
  • 第一范式(1NF)要求属性不可切割,确保数据项为原子数据。
  • 第二范式(2NF)要求消除部分函数依赖,确保主键完全依赖。
  • 第三范式(3NF)要求消除传递函数依赖,确保数据结构合理。
  • 反三范式设计:适度保留冗余数据以提高查询效率,需在满足三范式的基础上进行调整。
  • 数据库设计的三个境界:从不理解范式到理解其好处,再到认识范式的局限性。

延伸问答

什么是关系型数据库的三大范式?

关系型数据库的三大范式是第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。

第一范式的核心原则是什么?

第一范式的核心原则是属性不可切割,确保数据项为原子数据。

第二范式如何避免部分函数依赖?

第二范式要求消除部分函数依赖,确保主键完全依赖于所有属性。

第三范式的主要目标是什么?

第三范式的主要目标是消除传递函数依赖,确保数据结构合理。

范式设计的优点和缺点是什么?

范式设计的优点是降低数据冗余性,缺点是查询时需要通过Join拼接数据。

什么是反三范式设计?

反三范式设计是适度保留冗余数据以提高查询效率,需在满足三范式的基础上进行调整。

➡️

继续阅读