数据库中范式和反范式

数据库中范式和反范式

在范式化的数据库中,每个事实数据会出现在并且只会出现一次。相反,在反范式化数据库中,可能会存储在多个地方。

这里有一张简单的表,分别存储“学生,班级,班主任”:
这里写图片描述

这个表的问题是修改数据时出现问题。假如这个时候由Mr.Huang来担任01班班主任,那么这个时候需要修改多行数据来反应这个变化。这个时候我们需要对表进行范式化,将学生和班级作为一张表进行维护,班级和班主任作为一张表进行维护:

student_class表:
student_class表

class_teacher表:
class_teacher表

这样设计的表符合第二范式,并且降低了修改数据对表的影响。
**

范式的优点和缺点:

  • 范式化结构通常比反范式化结构更新要快
  • 当数据较好的范式化时,只有少量重复的数据,所以只需修改少量数据
  • 范式化的表通常较少,可以更好的放在内存之中,所以执行操作会更快
  • 非范式化的结构需要使用DISTINCT或则GROUP BY才能获得所有的班级列表(class),而范式化的结构可以直接获取班级列表(class_teacher).
  • -

反范式的优点和缺点:

  • 反范式结构的数据都在一张表中,可以很好的避免关联
  • 当数据比内存大时单表查询比关联查询要快得多,这样避免了随机I/O

*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值