【数据库设计】求闭包和候选键
闭包
设F为R关系模式上的函数依赖集,被F所逻辑蕴含的全体构成的集合,称为F的闭包,记作F⁺
先来看一个例子。
关系R(A,B,C)满足下列函数依赖F(A → B,A→C,B→AC),求A的闭包
通俗的来讲,就是A能直接或者间接推出的属性的集合
A → B, A→C, A→BC, A→Φ, A→A
空集可以省略不写,因此,A的闭包为ABC,同时A也为R上的候选键(原因是什么我们后面再讲)
如果换一下求B的闭包,知道了原理,那也非常容易了
B→AC, B→A, B→C, B→B, B→Φ
因此,B的闭包也是ABC,B也为R上的候选键
求C的闭包呢?
C→Φ, C→C
因此C的闭包就是C
候选键
若K为R< U,F>上的一个属性集,如果U完全依赖于K,则称K为R上的候选键。
简单的来说,如果K的闭包为U的话,那么K就为R上的候选键
比如上面的R(A, B, C),A的闭包为ABC,那么A就为R上的候选键,同理,B的闭包也为ABC,则B也为R上的候选键,C的闭包为C,因此,C不是R上的候选键。