函数依赖
假设在关系模式下S(U)中存在函数依赖关系X→Y
r是依据关系S(U)中的任意一个关系
若满足元祖t1和元祖t2在属性X上的取值相同,那他们在属性Y上的取值相同
例1.学生关系 R(Sno,Sn,Sd,Ss,Cno,G)
每个学生有唯一的一个学号,每个学生只有一个姓名(基本常识)
Sno → Sn
每个学生均只属一个系与一个专业
Sno → Sd Sno → Ss
每个学生修读之每门课有且仅有一个成绩
(Sno,Cno) → G
各系无相同专业
Ss → Sd
函数依赖:
平凡函数依赖,非平凡函数依赖,完全函数依赖,部分函数依赖,传递函数依赖
有关函数依赖的六条推理规则:
基本规则:
1.自反规则
如果Y是X的子集,则: X → Y
证明:
设t1,t2是关系R中的两个元组(t1∈R,t2∈R),且它们在属性集X上 的值相等(t1[X]=t2[X])
由于Y是X的子集,即X⊇Y
因此必有t1[Y]=t2[Y]
2.增广规则
如果X → Y,则:XZ → YZ
证明:
设t1∈R,t2∈R,如果t1[XZ]=t2[XZ],则:
t1[X]=t2[X]………………………………(1)
t1[Z]=t2[Z]………………………………(2)
由(1)及X→Y得:t1[Y]=t2[Y].........………(3)
由(2)及(3)得:t1[YZ]=t2[YZ]
3.传递规则
如果X → Y,Y → Z,则:X → Z
4.分解规则
如果X → YZ,则:X → Y 且 X → Z