数据库笔记(7.1)数据库反规范化

本文探讨了数据库反规范化,包括反规范化的坏处、考虑冗余的原因以及7种常见的反规范化方式,如合并1:1关系、减少连接操作等。强调在系统性能需求下权衡规范化和反规范化的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对冗余的控制(反范式模式)

数据库三范式:

  • 一范式:一个字段只有一个值
  • 二范式:一条记录可以被唯一的字段的组合所区分(一个实体有唯一的标识),是对于实体完整性的要求
  • 三范式:字段和字段之间不存在函数依赖。两个字段之间不能够进行函数推导。比如有两个字段,一个字段是身份证号,一个字段是出生日期;前者可以推导出后者,所以最好不应该同时存在。

反规范化的坏处

  1. 会使得实现变得更加复杂,因为需要手动保持数据完整性
  2. 会降低数据的灵活性
  3. 会加速元组检索的速度,但是一定会减慢更新的速度。
  • 如果系统具有低修改率和高查询率,那么规范弱化是一种可行的选择。
  • 如果根据某种规则打破范式,那么需要根据相应的解决方案来手动保证打破范式之后的数据完整性。
  • 反规范化需要先根据三范式设计出数据表,然后在设计出的表上进行反规范化
    • 可以通过ER实体关系模型先设计出表,然后构建出满足三范式的表

考虑冗余

  • 放弃完全规范化,得到某些性能上的好处。最好只在系统不满足其性能要求的时候才考虑打破范式。

打破范式的7种常见方式

1. Combine 1:1 relationships 合并1-1关系
2. Duplicating(重复) nonkey columns in 1:* relationships
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值