2.1 数据库结构优化的目的
- 减少数据冗余
- 尽量避免数据维护中出现更新,插入和删除异常
-
插入异常
如果表中的某个实体随着另一个实体而存在
先看一个表结构
看看数据
插入一门新课试试
-
更新异常
如果更改表中的某个实体的单独属性时,需要对多行进行更新
- 删除异常
如果删除某一个实体会导致其他实体的消失
-
- 节约数据库存储空间
- 提高查询效率
2.2 数据库结构设计的步骤
2.3 数据库设计范式
上面的study学生信息表,学号可以确定学院,而学院地址又与学院有关系,所以学院地址和学号传递依赖关系,所以对其拆分符合第三范式
2.4 数据库需求分析及逻辑设计实例
实际性能
2.5 反范式化(空间换时间)
对前面的案例进行反范式化改造
2.6 反范式化后查询
2.7 范式和反范式优缺点
2.7.1范式化
优点
缺点
2.7.2反范式化
优点
缺点
2.8 物理设计
2.8.1概念
2.8.2定义数据库,表,字段的命名规范
2.8.3选择合适存储引擎
2.8.4为字段选择合适的数据类型
2.8.4.1整数类型
2.8.4.2实数类型
2.8.4.3字符串类型
2.8.4.3.1 varchar
定义的宽度是字符单位,存储才是字节单位
2.8.4.3.2 char
2.8.4.4日期类型
2.8.4.4.1DATETIME
2.8.4.4.2TIMESTAMP
2.8.4.4.3时区问题
2.8.4.4.4微秒问题
2.8.4.4.5自动更新问题
2.8.4.4.6
MySQL5.7后date,time类型横空出世