一、范式
在数据库中,关于数据表设计的基本原则就称为范式。目前关系型数据库有六种范式,按照范式级别,从低到高为:第一范式、第二范式、第三范式、巴斯科德范式、第四范式以及第五范式。范式的级别越高,其冗余度就越低,且高阶的范式一定符合低阶范式的规范。
1.1、键和相关属性的概念
- 超键:能唯一标识元组的属性集叫做超键
- 候选键:如果超键不包含多余的属性,此时这个超键就是候选键。
- 主键:用户可以从候选键中选择一个作为主键
- 外键:如果一张表中的属性集为另一张数据表的主键,则该属性集为这张表的外键
- 主属性:包含在任一候选键中的属性称为主属性
- 非主属性:指不包含在任何一个候选键中的属性。
1.2、范式
第一范式
第一范式主要是确保数据表中的每个字段的值具有原子性,即每个字段的值不可拆分。
第二范式
在第一范式基础上,满足数据表中的每一条数据记录,都是可以唯一标识的,并且所有非主键字段,都必须完全依赖主键而不是主键的一部分。
例如,在成绩表(学号,课程号,成绩)关系中,通过(学号,课程号)可以决定成绩,而反过来则不行,所以(学号,课程号)->成绩
的这个关系就是完全依赖关系
第三范式
在第二范式的基础上,数据表中所有非主键字段不能依赖于其他非主