[数据库] 数据库范式--数据库设计遵循的原则

黑马程序员——数据库视频笔记
在这里插入图片描述

0 范式的概念

概念:范式就是符合某一规范级别的关系模式的集合。共有7种范式:
1NF ⊃ 2NF ⊃ 3NF ⊃ BCNF ⊃ 4NF ⊃ 5NF ⊃ 6NF

1 第一范式(First Normal Form)

如果一个关系模式R的所有属性都是不可分割的基本数据项, 则这个关系属于第一范式。

举例说明:(学生选课:学号, 姓名, 系别, 系部地址, 课程名称, 课程成绩)
Student(s_no,s_name,s_dept,s_location,s_course_name,s_grade)

注:
1NF 是关系模式应该具备的最起码的条件,如果数据库设计不能满足第一范式,就不能称作是关系模式;
关系数据库设计研究的关系规范化是在1NF 基础之上进行的。

2 第二范式(Second Normal Form)

定义:若关系模式R属于第一范式,且每个非主属性都是完全依赖于主键,则R属于第二范式。

说明:
从2NF的定义可以看出,从2NF开始讨论的是主键和非主属性之间的函数依赖关系,所以分析关系模式是属于2NF,
首先指明关系模式的主键,然后讨论非主属性和主键之间的函数依赖关系

举例说明:选课关系模式
SC(s_no,c_no,score)中,主键为(s_no,c_no),而非主属性score与主键之间不存在部分函数依赖关系
所以关系模式SC属于2NF

3 第三范式(Third Normal Form)

定义:若关系模式R属于第一范式,且每个非主属性都不传递函数依赖于主键, 则R属于第三范式。

说明:
3NF 说明的是非主属性和主键之间的函数依赖关系

举例说明:选课关系模式
SC(s_no,c_no,score)中, 由于除了主键之外,只有一个非主属性score,所以score不可能构成与主键之间的传递函数依赖,
所以SC属于3NF

4 BCNF(Boyce- Codd Normal Form)

定义:若关系模式R属于第一范式,且每个属性都不传递依赖于主键,则R属于BC范式。

说明:
也就是说,在关系模式R中,凡是决定因素的属性或属性集包含键码,决定因素是函数依赖的左部属性集,比如X->Y,X成为决定因素。

由BC范式的定义可以得到以下的结论,一个满足BC范式的关系模式有:

  1. 所有非主属性对每一个候选码都是完全函数依赖
  2. 所有的主属性对每一个不包含它的候选码都是完全函数依赖
  3. 没有任何属性完全函数依赖于非候选码的任何一组属性