数据库反规范化:概念、方法与技巧
1. 理解反规范化
反规范化通常(但不总是)是规范化的逆过程。规范化是为了减少数据冗余、确保数据一致性,但过度规范化可能会导致数据库性能下降。反规范化可以应用于数据库模型,以创建数据仓库或仅用于报告的表。有时,它也是解决性能不佳的在线事务处理(OLTP)应用程序的一种方法,这可能是由于过去在数据库模型和应用程序开发中过度使用规范化导致的。过度的规范化粒度可能会带来与解决的问题一样多的问题,因此反规范化通常试图逆转在规范化过程中因过度应用范式而产生的粒度。
2. 回顾规范化步骤
在描述反规范化之前,有必要了解规范化中包含的步骤(范式):
- 第一范式(1NF) :通过创建新表来移除重复字段。原表和新表通过主 - 明细的一对多关系连接。同时,在两个表上创建主键。虽然 1NF 不要求定义明细表格的主键,但明细表格通常有一个复合主键,其中包含主表主键字段作为其主键的前缀字段,该前缀字段也是指向主表的外键。
- 第二范式(2NF) :执行与 1NF 看似相似的功能,但移除的是重复值而不是重复字段到新表。结果是在原表和新表之间创建了多对一关系,而不是 1NF 中的一对多关系。新表获得一个由单个字段组成的主键,主表包含一个指向新表主键的外键,该外键不是原表主键的一部分。
- 第三范式(3NF) :消除传递依赖。如果一个字段不是由主键直接确定,而是通过另一个字段间接由主键确定,则该字段存在传递依赖。在某些情况下,消除传递依赖意味着为现有表中间接依赖于主键的内容创建新表。对 3NF 有多种解释方法。
-
超级会员免费看
订阅专栏 解锁全文
1290

被折叠的 条评论
为什么被折叠?



