本章讲述数据库涉及和范式.一个好的数据库应该在不丢失数据的前提下有较小的冗余
实体实际世界需要存储到数据库的东西,
表和关系是一个概念
列或属性
行或记录或Tuples
Superkey, 用来在表中确定记录,key是最小的superkey, primary key, Foreign keys
Mysql 是relational database management system (RDBMS),表代表关系.
减少冗余而不丢失数据
异常是数据库设计的缺陷,包含插入,更新,删除异常. 比如说插入员工的时候部门不存在,一个部门的所有员工辞职,部门号也丢失了.部门名改变的时候要修改所有员工的数据.
尽量减少空值.
第一范式:每个属性包含单一的值
第二范式:符合第一范式,非主键对所有主键存在功能依赖.如果主键由多个,不能对单个存在依赖.该规则针对主键
第三范式:非主键有且只有主键确定.
在满足第2NF的规则的基础上,非主键字段必须直接依赖于主键。
BCNF 非主键字段必须依赖于整个主键字!
也就是说,要想达到BCNF的标准,还要在3NF的基础上基础拆分表。