数据库的结构优化
数据库结构优化的目的
- 减少数据冗余
- 避免数据维护中出现更新、插入和删除异常
- 插入异常:如果表中的某个实体随着另一个实体而存在
- 更新异常:如果更新表中的某个实体的单独属性时,需要对多行进行更新
- 删除异常:如果删除表中的某一实体则会导致其他实体的消失
- 节约数据存储空间
- 提供查询效率
数据库结构设计的步骤
- 需求分析:全面了解产品设计的存储需求,数据处理需求,数据的安全性和完整性
- 逻辑设计:设计数据的逻辑存储结构,数据实体之间的逻辑关系,解决数据冗余和数据维护异常
- 物理设计:根据所使用的数据库特点进行表结构设计
- 维护优化:根据实际情况对索引、存储结构等进行优化
数据库设计三范式
- 第一范式:
- 数据库表中的所有字段都只具有单一属性
- 单一属性的列是由基本的数据类型所构成的
- 设计出来的表都是简单的二维表
- 第二范式:
要求一个表中只具有一个业务主键,也就是说不能存在非主键列只对部分主键的依赖关系 - 第三范式:
指每一个非主属性既不部分依赖于也不传递依赖于业务主键,也就是在第二范式的基础上消除了非主属性对主键的传递依赖
范式化设计
优点:
* 可以尽量的减少数据冗余
* 更新操作比反范式化更快
* 表通常比反范式化更小
缺点:
* 对于查询需要对多个表进行关联
* 更难进行索引优化
反范式化设计
优点:
* 可以减少表的关联
* 更好的进行索引优化
缺点:
* 存在数据冗余及数据维护异常
* 对数据的修改需要更多的成本
作者:皎然CEO
链接:https://www.cnblogs.com/jiaoran/p/14422217.html
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦(っ•̀ω•́)っ✎⁾⁾!