mysql梳理笔记---数据结构优化

数据结构优化的目的

  • 减少数据冗余:加少相同的数据在多个地方存在
  • 尽量避免数据维护中出现更新/插入和删除异常
    • 插入异常:如果表中但某个实体随着另一个实体而存在。例如:要插入的数据需要必填字段,但当前没有
    • 更新异常:如果更改表中的某个实体的单独属性时,需要对多行进行更新。
    • 删除异常:如果删除表中的某一实体则会导致其他实体的消失。
  • 节约数据存储空间
  • 提高查询效率

数据库结构设计的步骤

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

数据库结构设计范式

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

随机浏览