数据库规范化基础

规范化你的数据库

如果你一直在使用数据库一段时间,你有可能听说过术语规范化。 也许有人问你“数据库是否正常化?” 或者“ BCNF中是这样吗?” 正常化经常被忽视,只有学者才有时间享受奢侈品。 但是,了解规范化原则并将其应用于日常数据库设计任务并不是那么复杂,并且可以大大提高DBMS的性能。

在本文中,我们将介绍标准化的概念并简要介绍一下最常见的标准形式。

什么是标准化?

规范化是有效组织数据库中的数据的过程。 规范化过程有两个目标:消除冗余数据(例如,将相同的数据存储在多个表中)并确保数据依赖性有意义(仅将相关数据存储在表中)。 这些都是值得的目标,因为它们减少了数据库消耗的空间量,并确保数据在逻辑上存储。

正常形式

数据库社区制定了一系列确保数据库正常化的指导原则。 这些被称为正常形式,并从一个(归一化的最低形式,被称为第一正常形式或1NF)到五个(第五正常形式或5NF)编号。 在实际应用中,您经常会看到1NF,2NF和3NF以及偶尔的4NF。 第五范式很罕见,本文不讨论。

在我们开始讨论正常形式之前,重要的是要指出它们只是指导性和指导性的。 偶尔,有必要偏离他们以满足实际业务需求。 但是,如果发生变化,评估系统可能产生的任何后果以及可能的不一致性非常重要。 这就是说,我们来探索一下正常的形式。

第一范式(1NF)

第一范式(1NF)为有组织的数据库设定了非常基本的规则:

第二范式(2NF)

第二范式(2NF)进一步解决了删除重复数据的概念:

第三范式(3NF)

第三范式(3NF)更进一步:

博伊斯 - 科德范式(BCNF或3.5NF)

博伊斯 - 科德范式也被称为“三分之一(3.5)正常形式”,增加了一项要求:

第四范式(4NF)

最后,第四范式(4NF)还有一个额外要求:

请记住,这些规范化指南是累积的。 要使数据库处于2NF中,它必须首先满足1NF数据库的所有条件。

我应该正常化吗?

虽然数据库正常化通常是一个好主意,但这不是绝对的要求。 事实上,有些情况下故意违反正常化规则是一种好的做法。 有关此主题的更多信息,请阅读我应该规范化我的数据库吗?

如果你想确保你的数据库是正常化的,从学习如何把数据库放到第一范式开始