标准化
什么是规范化?
数据规范化是在关系数据库中组织信息以减少冗余的过程。规范化数据可确保数据库中的表尽可能高效地运行,消除歧义,以便每个表服务于单一目的。
当从非规范化数据库迁移到规范化数据库时,您可能需要分解现有表以创建更多更小的表。这些新表将具有更窄的焦点,并将通过实体键和外键链接到其他表。通过规范化,还可以获得减少整体数据库大小和简化数据库维护的额外好处,因为您不再在多个位置存储相同的信息。
数据规范化示例
规范化过程按照相互构建的规则进行,这些规则称为范式。第一范式 (1NF) 规定字段不应在单个单元格内存储多个值,并且表中的每个字段都应该是唯一的。 这是一个例子
非规范化表
产品 ID | 产品名称 | 产品颜色 1 | 产品颜色 2 |
---|---|---|---|
P001 | 针织开衫 | 粉色 | 栗色 |
P002 | 喇叭牛仔裤 | 海军蓝 | |
P003 | 亚麻背心 | 驼色 | 米白色 |
P004 | 跑步运动鞋 | 橙色 |
您会注意到我们有两个字段包含相似的信息,即产品颜色。为了使此表符合 1NF,我们需要将此表分解为两个可以连接在一起的单独表。
规范化产品名称表
产品 ID | 产品名称 |
---|---|
P001 | 针织外套 |
P002 | 喇叭牛仔裤 |
P003 | 亚麻背心 |
P004 | 跑步运动鞋 |
规范化产品颜色表
产品 ID | 产品颜色 |
---|---|
P001 | 粉色 |
P001 | 栗色 |
P002 | 海军蓝 |
P003 | 驼色 |
P003 | 米白色 |
P004 | 橙色 |
查看我们的“学习”文章,了解 2NF 和 3NF 的示例。虽然存在超出这三种范式的范式,但它们的使用在很大程度上是理论性的,前三种范式应该足以满足大多数实际数据库需求。