数据库范式

范式:其实是一种规则,就是设计表的时候需要遵循一定的规则。

第一范式:字段值的原子性,所有字段都是不可分割的原子值。

idname-age
1bruce-25

如name-age还可以分为name和age

idnameage
1bruce25

第二范式:第一范式前提下,所有非主属性不能部分依赖主属性。

idcourse_idnamecourse_name
101brucemath

id和course_id是主键
name依赖于id,course_name依赖于course_id并不完全依赖于所有主键。

idnamecourse_idcourse_name
1bruce01math

id是主键,课程名依赖于courseId,不直接依赖id。

第三范式:第二范式前提下,所有非主属性需要直接依赖于主属性,不能传递依赖。

总结下来,范式的好处是,能够减少数据冗余,表的更新操作更快,每个表都会比较小。但是也存在一定的问题,遵循三范式设计的表,在关联查询操作时比较繁琐,更难进行索引优化;所以就有了反范式,就是不完全按照三范式来设计表,这样的做法可以减少在关联查询时候,减少表与表之间的关联,更好的进行索引优化;当然反范式有好处肯定有坏处,这样设计的表存在数据冗余以及会出现数据维护异常,对数据修改也需要更大成本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值