一、关键点
1.第一范式(1NF)
字段不可再分,每个字段为原子字段
2.第二范式(2NF)
每个非主键字段必须完全依赖主键,即通过主键可以唯一定位到一条记录
3.第三范式(3NF)
每个非主键字段必须直接依赖主键,应该无传递依赖,否则应该拆分表
4.鲍依斯-科得范式(BCNF)
主属性字段也要无部分依赖和传递依赖
5.候选键、主键、主属性和非主属性
- 候选键:可以唯一确定一条记录的一个字段或多个字段的集合,可以有多个候选键
- 主键:当候选键有多个时,从多个候选键中选择一个,要遵循最少性原则和稳定性原则
- 主属性:包含在候选键的字段被称为主属性
- 非主属性:与主属性相反,不包含在候选键的字段被称为非主属性
最少性原则:主键最好选择更短的主键,例如:学号(单一主键)与姓名、班级(联合主键)的情况,应当原则学号为主键,遵循最少性原则
稳定性原则:选择作为主键的字段应当相对稳定,最好永远不变
6.决定关系与范式判断
举个例子:
学生表(学号, 姓名, 年龄, 课程名称, 成绩)
决定关系:
学号决定姓名和年龄,即:
(学号)->(姓名,年龄)
同理:
(课程名称,学号)->(成绩)
候选键:学号和课程名称可以唯一确定一条记录,所以它作为候选键。
主键:因为候选键只有一个,所以主键也是它。
范式判断:符合原子字段,满足第一范式;不符合完全依赖,因为姓名和年龄只依赖于学号,而不依赖与课程名称,只依赖了主键的一部分,所以不满足完全依赖,不满足第二范式。