数据依赖
在介绍关系数据库的范式之前,先介绍一下数据依赖。主要的函数依赖有两种:函数依赖与多值依赖。
函数依赖
设R(U)是属性集U上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X->Y。
相关术语和记号:
-
X->Y,但Y不包含于X,则称X->Y是非平凡的函数依赖,若Y包含于X,则称X->Y是平凡的函数依赖
-
若X->Y,则称X为这个函数依赖的决定属性,也成为决定因素
-
在R(U)中,如果X->Y,并且对于X的任何一个真子集X‘,都有X’不能推出Y,则称Y对X完全函数依赖。
-
在R(U)中,如果X->Y(Y不包含于X),Y不能推出X,Y->Z,Z不包含于Y,则称Z对于X传递函数依赖。
多值依赖
设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X->->Y成立,当前仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。