标准化
什么是规范化?
数据规范化 是将信息结构化到关系型数据库中以减少冗余的过程。规范化数据确保数据库中的表尽可能高效地运行,消除歧义,使每个表仅服务于单一目的。
当从非规范化数据库迁移到规范化数据库时,您可能需要将现有的表拆分以创建额外的、更小的表。这些新表将具有更窄的焦点,并通过 实体 和 外键 与其他表链接。规范化带来了减少整体数据库大小和简化数据库维护的额外好处,因为您不再在多个地方存储相同的信息。
数据规范化的示例
规范化过程是按照相互构建的规则进行的,称为范式。第一范式 (1NF) 规定字段不应在单个单元格中存储多个值,并且表中的每个字段都应该是唯一的。以下是一个示例
非规范化表
产品_ID | 产品名称 | 产品颜色1 | 产品颜色2 |
---|---|---|---|
P001 | 针织开衫 | 粉红色 | 栗色 |
P002 | 紧身牛仔裤 | 海军蓝 | |
P003 | 亚麻背心 | 骆驼色 | 米白色 |
P004 | 运动鞋 | 橙色 |
您会注意到我们有两个包含类似信息的字段,关于产品颜色。为了使此表符合1NF,我们需要将其拆分为两个可以连接的单独表。
规范化产品名称表
产品_ID | 产品名称 |
---|---|
P001 | 针织夹克 |
P002 | 紧身牛仔裤 |
P003 | 亚麻背心 |
P004 | 运动鞋 |
规范化产品颜色表
产品_ID | 产品颜色 |
---|---|
P001 | 粉红色 |
P001 | 栗色 |
P002 | 海军蓝 |
P003 | 骆驼色 |
P003 | 米白色 |
P004 | 橙色 |
请参阅我们的学习文章,了解 2NF 和 3NF 的示例。尽管存在超过这三个的范式,但它们的使用主要属于理论范畴,前三个范式对于大多数实际数据库需求应该足够。