数据库三大范式,什么是反范式?

三大范式

  • 第一范式 (INF) : 字段(或属性) 是不可分割的最小单元,即不会有重复的列,体现原子性
  • 第二范式(2NF):满足 1NF 前提下,存在一个候选码,非主属性全部依赖该候选码,即存在主键,体现唯一性,专业术语则是消除部分函数依赖
  • 第三范式 (3NF) : 满足 2NF 前提下,非主属性必须互不依赖,消除传递依赖

第一范式

第一范式是指数据库表中的每一列都必须是原子性的,也就是说,每个列中的值都不能再分解成更小的数据项。同时,每个表必须有一个主键,用于唯一标识每条记录。

第二范式

第二范式是指表中的非主键列必须完全依赖于主键,而不是依赖于主键的一部分。如果有非主键列依赖于主键的一部分,那么就需要将这些列拆分到另一表中。

第三范式

第三范式是指表中的非主键列之间不能存在传递依赖关系。也就是说,非主键字段不能依赖于其他非主键字段。

 除了三大范式外,还有BC范式和第四范式,但其规范过于严苛,在生产中往往使用不到。

什么是范式和反范式,以及各自优缺点?

范式是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。

优点缺点
范式范式化的表减少了数据冗余,数据表更新操作快、占用存储空间少。查询时通常需要多表关联查询,更难进行索引优化
反范式反范式的过程就是通过冗余数据来提高查询性能,可以减少表关联和更好进行索引优化存在大量元余数据,并且数据的维护成本更高

所以在平时工作中,我们通常是将范式和反范式相互结合使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值