A不能做候选码的原因是A→C,D,E均不成立
AC不能做候选码的原因是 虽然AC→A,B,C,D都成立,但没有A→E
AE不能做候选码的原因是AE→C,D都不成立
ACE、BCE、DCE解析:观察函数右侧,CE不可能被任何函数决定,因此候选码必须包含CE。
在{C,E}中增加属性,第一次增加一个,发现增加A,B,D均可决定所有属性,即为所求解。
当然,如果并非所有情况都存在,需要增加两个甚至更多。
题目要补充完整,必须给出集合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条)