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