规范化
规范化理论用来改造关系模式,通过分解关系模式的方法来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。
部分函数依赖:
设X,Y是关系R的两个属性集合,存在X→Y,X可以推出Y,也存在着X的某个真子集X’也可以推出Y。
举个例子:学生基本信息表R中(学号,身份证号,姓名)当然学号属性取值是唯一的,在R关系中,(学号,身份证号)->(姓名),(学号)->(姓名),(身份证号)->(姓名);所以姓名部分函数依赖与(学号,身份证号);
完全函数依赖
设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(学号 ,宿舍, 费用)中,(学号)->(宿舍),宿舍!=学号,(宿舍)->(费用),费用!=宿舍,所以符合传递函数的要求;
范式
第一范式:表中没有表。
第二范式:消除了非主属性与码部分依赖。
第三范式:消除了非主属性与码传递依赖。
BC 范式:消除了主属性与码的部分依赖和传递依赖。