逻辑设计
数据库设计三大范式
数据库设计第一大范式
数据库表中所有的字段都只具有单一属性
单一属性的列是由基本数据类型所构成
设计出来的表都是简单的二维表
数据库设计的第二大范式
要求表中只有一个业务主键,也就是说符合第二范式的表不能存在非主键列,只对部分主键的依赖关系
数据库设计的第三大范式
指每一个非非主属性既不部分依赖于也不传递依赖于业务主键,也就是在第二范式的基础上相处了非主键对主键的传递依赖
反范式化设计
为啥要有这个东西呢,就是因为如果过分的依赖于三大范式,设计出来的表虽然很符合规范,但是SQL的查询性能将会很差,所以才有了反范式设计
什么叫反范式化设计:
反范式化是针对范式化而言的,在前面介绍的三大范式
所谓的反范式化就是为了性能和读取效率的考虑而适当的对数据库设计范式的要求进行违反
允许存在少量冗余,换句话来说反范式化就是用空间换时间
逻辑设计总结
不能完全按照范式的要求进行设计
考虑以后如何使用表
范式化设计优缺点
优点:
可以尽量的减少数据冗余
范式化的更新操作比反范式化更快
范式化的表通常比反范式化的表要小
缺点:
对于查询需要多个表进行关联
更难进行索引优化
反范式化设计的优缺点:
优点:
可以减少表的关联
可以更好的进行索引优化
缺点:
存在数据冗余及数据维护异常
对数据修改需要更多的成本
作者:彼岸舞
时间:2020\07\08
内容关于:Mysql
本文来源于网络,只做技术分享,一概不负任何责任