- 第一范式:设R为任一给定关系,如果R中每一个行和列的交点的取值是不可再分的基本元素,则R为第一范式。
- 第二范式:设R为任一给定关系,若R为1NF,且其所有的非主属性都完全函数依赖与候选关键字,则R为第二范式。
- 第三范式:设R为任一给定关系,若R为2NF,且其所有的非主属性都不传递函数依赖与候选关键字,则R为第二范式。
- BCNF:设R为任一给定关系,X、Y为其属性集,F为其函数依赖集,若R为3NF,且其F中所有的函数依赖X决定Y(Y不属于X)中的x必包含候选关键字,则R为BCNF。
- 完全函数依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。
例子:学生基本信息表R(学号,班级,姓名)假设不同的班级学号有相同的,班级内学号不能相同,在R关系中,(学号,班级)->(姓名),但是(学号)->(姓名)不成立,(班级)->(姓名)不成立,所以姓名完全函数依赖与(学号,班级);
- 部分函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。
例子:学生基本信息表R中(学号,身份证号,姓名)当然学号属性取值是唯一的,在R关系中,(学号,身份证号)->(姓名),(学号)->(姓名),(身份证号)->(姓名);所以姓名部分函数依赖与(学号,身份证号);
- 传递函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。
例子:在关系R(学号 ,宿舍, 费用)中,(学号)->(宿舍),宿舍!=学号,(宿舍)->(费用),费用!=宿舍,所以符合传递函数的要求;