关系型数据库设计三大范式
💡
原文中文,约2900字,阅读约需7分钟。
📝
内容提要
文章介绍了关系数据库的三种范式:第一范式要求属性不可分割,第二范式避免部分函数依赖,第三范式消除传递函数依赖。范式的优点是降低数据冗余,但查询时需使用Join。反范式设计可以适度保留冗余数据以提高查询效率。
🎯
关键要点
- 范式定义:设计关系数据库时遵循的规范要求,主要包括第一范式、第二范式和第三范式。
- 范式的优点:降低数据冗余性,确保数据一致性。
- 范式的缺点:查询时需要通过Join拼接数据。
- 目前业界范式分类:包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等。
- 完全函数依赖:某个属性集完全依赖于另一个属性集。
- 部分函数依赖:某个属性集部分依赖于另一个属性集。
- 传递函数依赖:某个属性集通过另一个属性集间接依赖。
- 第一范式(1NF)要求属性不可切割,确保数据项为原子数据。
- 第二范式(2NF)要求消除部分函数依赖,确保主键完全依赖。
- 第三范式(3NF)要求消除传递函数依赖,确保数据结构合理。
- 反三范式设计:适度保留冗余数据以提高查询效率,需在满足三范式的基础上进行调整。
- 数据库设计的三个境界:从不理解范式到理解其好处,再到认识范式的局限性。
❓
延伸问答
什么是关系型数据库的三大范式?
关系型数据库的三大范式是第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。
第一范式的核心原则是什么?
第一范式的核心原则是属性不可切割,确保数据项为原子数据。
第二范式如何避免部分函数依赖?
第二范式要求消除部分函数依赖,确保主键完全依赖于所有属性。
第三范式的主要目标是什么?
第三范式的主要目标是消除传递函数依赖,确保数据结构合理。
范式设计的优点和缺点是什么?
范式设计的优点是降低数据冗余性,缺点是查询时需要通过Join拼接数据。
什么是反三范式设计?
反三范式设计是适度保留冗余数据以提高查询效率,需在满足三范式的基础上进行调整。
➡️