设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据这些不同的规范要求被称为不同的范式,
各种范式呈递次规范,越高的范式数据库冗余越小。
目前关系数据库有六种范式:
第一范式(1NF)、
第二范式(2NF)、
第三范式(3NF)、
巴斯-科德范式(BCNF)、
第四范式(4NF
)和第五范式(5NF,又称完美范式)
第一范式:每一列都是不可分割的数据项
第二范式:在1NF的基础上非码属性必须依赖于码(在1NF的基础上消除非主属性对主码的部分函数依赖)
1.函数依赖:如果通过 A属性 或者属性组 可以 确定唯一的B属性值 则称B依赖于A
例如 学号可以确定姓名 (学号,课程名称 )可以确定成绩
2.完全依赖
A->B 如果A是一个属性组 则B属性的确定要 依赖于A属性组中的所有数据
3.部分依赖
如果A是一个 属性组 则B的属性值的确定只需要 A 属性组的部分属性就可以确定了;
4.传递函数依赖
A->B , B->C 则称 C传递依赖于 A
5.码:
如果一个表中一个属性或者属性组 被其他所有属性 完全依赖则称这个属性(属性组) 为 这个表的码
主属性:码属性中的所有属性
非主属性 : 除码中属性之外的其他属性
第三范式:
在2NF的基础上,任何非主属性 不依赖于其他 非主属性(在2NF)、的基础上消除传递依赖)