U={A,B,C,D,E};
F={AB→C,B→D,C→E,EC→B,AC→B}。
求(AB)F+ 。
解 设X(0)=AB;
(1)计算X(1): 逐一的扫描F集合中各个函数依赖,
找左部为A,B或AB的函数依赖。得到两个:
AB→C,B→D。
于是X(1)=AB∪CD=ABCD。
(2)因为X(0)≠ X(1) ,所以再找出左部为ABCD子集的那些函数依赖,又得到AB→C,B→D, C→E,AC→B,
于是X(2)=X(1)∪BCDE=ABCDE。
(3)因为X(2)=U,算法终止
所以(AB)F+ =ABCDE。
求属性集X(X U)关于U上的函数依
赖集F 的闭包XF+
输入:X,F
输出:XF+
步骤:
(1)令X(0)=X,i=0
(2)求B,这里B = { A |( V)( W)(V→WF
∧V X(i)∧A W)};
(3)X(i+1)=B∪X(i)
(4)判断X(i+1)= X (i)吗?
(5)若相等或X(i)=U , 则X(i)就是XF+ ,
算法终止。
(6)若否,则 i=i+l,返回第(2)步。
对于算法6.l, 令ai =|X(i)|,{ai }形成一个步长大
于1的严格递增的序列,序列的上界是 | U |,因
此该算法最多 |U| - |X| 次循环就会终止。
书本上的定义是:在关系模式R(U,F)中为F所逻辑蕴含的函数依赖全体叫做F的闭包,记作F^+个人理解是函数依赖集中的所有情况,包括推理出来的。
例如:给定关系R(A1, A2, A3)上的函数依赖集 F={A1-->A2A3}
A1-->A2A3 由分解率可得 A1-->A2, A1-->A3, 那么
A1-->A2A3, A1-->A2, A1-->A3 都属于 F^+
题目要补充完整,必须给出集合U
已知R(U,F),其中 U={A,B,C,D,E}, F={A→D,E→D,D→B,BC→D,DC→A},求候选关键字。
①取L类属性(仅出现在F的函数依赖左侧的)——E,C
②求EC关于F的闭包(即由EC可以推出哪些属性)——(EC)+ = ABCDE,包含了U的全部属性,故EC为候选关键字
注: 若U={A,B,C,D,E,P},P不在F中左侧或右侧,则P为N类属性,(ECP)+ =ABCDEP,同样包含了U的全部属性,那么候选关键字就为ECP
附:
定理一:对于给定的关系模式R(U,F),若X(X属于U)是L类属性,则X必为R的任一候选码的成员(组成部分)。
推论一:已知R(U,F),若X(X属于U)是L属性,且X+F包含了R的全部属性U,则X必为R的唯一候选码。
定理二:给定R(U,F),若X(X属于U)是R类属性,则X不在任何候选码中。
定理三:给定R(U,F),若X是R的N类属性,则X必包含在R的任一候选码中。
推论二:已知R(U,F),若X是R的N类和L类属性组成的属性集,且X+包含了R的全部属性U,则X是R的唯一候选码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)