数据依赖
关系内部属性与属性之间的一种约束关系,通过属性间值的相等与否体现。
好的模式应
避免插入、删除、更新异常,数据冗余尽量少。
函数依赖
R(U)是属性集U上的关系模式,X、Y是U的子集,在R中任意一个可能的关系r中,不可能存在两个元组,其在X上的属性值相等,而在Y上的属性值不等,
则称函数X确定Y 或 Y函数依赖于X 记作X→Y
平凡函数依赖:X→Y 且X包含Y
非平凡函数依赖:X→Y 且X不包含Y
完全函数依赖:X→Y,且对于X的任何一个真子集X´,都不能得到X´→Y
部分函数依赖:X→Y,但Y不完全依赖于X
传递函数依赖:若X→Y(X不包含Y),且无法得到Y→X,且Y→Z(Y不包含Z),则称Z对X传递函数依赖
范式
1NF
满足最低的要求:每个分量必须是不可分的数据量
2NF
在1NF的基础上,每个非主属性完全依赖于任何一个候选码,否则应将其投影分解。
3NF
每一个非主属性既不传递依赖于码,也不部分依赖于码。
属于3NF必属于2NF,反之未必成立
BCNF
在2NF,3NF的基础上,没有任何属性完全函数依赖于非码的任何一组属性。
例:(S,J,P)S为学生,J为课程,P为教师。每个教师只教一门课,每门课若干教师,学生选某门课就固定了教师。
得到(S,J)→T (S,T)→J T→J 其中(S,J)(S,T)是候选码,而T是决定因素,但它不包含码,所以不是BCNF
数据依赖公理系统
U为属性集总体,F是U上的一组函数依赖,于是又关系模式R<U,F>,有以下推理规则
原公理
自反律:U包含X,X包含Y,则有F蕴含依赖X→Y
曾广律:若F蕴含X→Y,且U包含Z,则F也蕴含XZ→YZ
传递律:若F蕴含X→Y和Y→Z ,则F也蕴含X→Z
推理规则
合并规则:由X→Y和X→Z,有X→YZ
伪传递规则:由X→Y和WY→Z,有XW→YZ
分解规则:由X→Y和Y包含Z ,有X→Z
属性集关于函数依赖的闭包
由原始依赖关系可推导出的全部依赖的集合