函数依赖(Function Dependency,FD):
数学形式的定义就不说了,有一个等价的定义可以仔细体会一下:
(FD的等价定义) 对X中的任一值x, 的值仅有一个元组,则有X→Y。
注意基本单位是关系中的属性,即列与列之间的依赖关系(决定关系)
上例子:
已知关系SC(Sno,Cno,Grade,Credit):Sno,学号;Cno,课程号;Grade,成绩;Credit,学分;
一个学生可选多门课程,一个课程可由多个学生选。
根据常识也可以理解,在上述关系中,学号和课程号可以决定成绩,记为(成绩依赖于(学号,课程号))
故,由 1式
2式 肯定也成立
平凡依赖:
对于2式,称Credit部分依赖于(Sno,Cno)
个人理解,读作(Sno,Cno)部分决定(有一部分就可以决定)Credit更方便记忆。
完全依赖:
对于1式,称Credit完全依赖于Cno
同样也是个人理解,读作Cno完全决定Credit更方便记忆
传递依赖:
可得
有了函数依赖的概念,便更容易理解范式的定义了。
闭包
了解闭包前需要知道一个概念,函数依赖集。
关系模式R上所有的函数依赖组成的集合就是函数依赖集。
函数依赖集F的闭包:F +
属性闭包:
例子:
属性集U 为ABCD,
F={A→B, B→C, D→B}
求: A + , (AD) +, (BD)+
A + = ABC (AD)+ = ABCD (BD)+ = BCD