什么是三范式?

2 02 2 年,我参与了某城市的一个大型数据库项目。
当时我们遇到了一个问题,就是数据表的设计。
领导说,我们要遵循三个范式。
我当时很困惑。
什么是三个范式? 后来我才知道,这就是数据库规范化理论。

首先必须保证第一范式,即表结构的列不可分割,且每一列必须是一个原子数据项。
这听起来很简单,但做起来并不容易。
我记得我们花了多少钱来确保数据准确清晰。

那么,在第二范式中,这就更加复杂了。
所有非主键列都必须完全依赖于主键。
我们必须重新设计表结构,确保没有任何部分数据是冗余的。
当时我们团队就这个问题讨论了很多天。

最后,第三范式有更高的要求。
非主键列之间不能存在传递依赖关系。
我们必须仔细检查每一列,以确保它们仅依赖于主键。
这个过程,说实话,是相当痛苦的。

但是,遵循这三种范式确实可以让我们的数据库结构更加清晰、更加高效。
虽然过程中遇到了很多困难,但最终的结果是好的。
也许我有偏见,但我认为这就是数据库设计的本质。

理解什么是数据库规范化

数据库设计很乱? 标准化可以帮助您清理。

说白了,就是分层次组织的。
最低级别 1 NF 确保列中没有重复数据。
然后是2 NF,其中非主键列必须完全依赖于主键。
3 NF 进一步要求非主键列不能相互依赖。
BCNF、4 NF 和 5 NF 更严格。

上周我刚刚做一个项目,2 NF 帮我解决了很多插入异常。
数据冗余确实很烦人。
如何将你的表规范化到 2 NF 以上?