2.1 数据库结构优化的目的
减少数据冗余
尽量避免数据维护中出现更新,插入和删除异常
插入异常
如果表中的某个实体随着另一个实体而存在
先看一个表结构
为学号,课程名称列定义主键约束...,即一个学生只能选相同的课程一次
看看数据
存在数据冗余
插入一门新课试试
由于主键约束的存在,在没有学生选择这门课时无法将新课程插入到表中...更新异常
如果更改表中的某个实体的单独属性时,需要对多行进行更新
更新了2行数据,数据越多,同时更新的也就越多,可看出和数据冗余有很大联系
删除异常
如果删除某一个实体会导致其他实体的消失...节约数据库存储空间
提高查询效率
2.2 数据库结构设计的步骤
2.3 数据库设计范式
有时需要反范式
符合第一范式
将上个表拆成两个表,即符合第二范式
上面的study学生信息表,学号可以确定学院,...适用场景,身份证性别等
2.8.4.4日期类型
2.8.4.4.1DATETIME
最通用时间类型
2.8.4.4.2TIMESTAMP
2.8.4.4.3时区问题
设置时区-第十时区
建表
TIMESTAMP