数据库的结构优化

数据库结构优化的目的

  • 减少数据冗余
  • 避免数据维护中出现更新、插入和删除异常
    • 插入异常:如果表中的某个实体随着另一个实体而存在
    • 更新异常:如果更新表中的某个实体的单独属性时,需要对多行进行更新
    • 删除异常:如果删除表中的某一实体则会导致其他实体的消失
  • 节约数据存储空间
  • 提供查询效率

数据库结构设计的步骤

  • 需求分析:全面了解产品设计的存储需求,数据处理需求,数据的安全性和完整性
  • 逻辑设计:设计数据的逻辑存储结构,数据实体之间的逻辑关系,解决数据冗余和数据维护异常
  • 物理设计:根据所使用的数据库特点进行表结构设计
  • 维护优化:根据实际情况对索引、存储结构等进行优化

数据库设计三范式

  • 第一范式:
    • 数据库表中的所有字段都只具有单一属性
    • 单一属性的列是由基本的数据类型所构成的
    • 设计出来的表都是简单的二维表
  • 第二范式:
    要求一个表中只具有一个业务主键,也就是说不能存在非主键列只对部分主键的依赖关系
  • 第三范式:
    指每一个非主属性既不部分依赖于也不传递依赖于业务主键,也就是在第二范式的基础上消除了非主属性对主键的传递依赖

范式化设计

优点:
  * 可以尽量的减少数据冗余
  * 更新操作比反范式化更快
  * 表通常比反范式化更小
缺点:
  * 对于查询需要对多个表进行关联
  * 更难进行索引优化

反范式化设计

优点:
  * 可以减少表的关联
  * 更好的进行索引优化
缺点:
  * 存在数据冗余及数据维护异常
  * 对数据的修改需要更多的成本
原文地址:https://www.cnblogs.com/jiaoran/p/14422217.html