(X) + F =Y闭包求法: 第一步:设最终将成为闭包的属性集是Y,把Y初始化为X; 第二步:检查F中的每一个函数依赖A→B,如果属性集A中所有属性均在Y中,而B中有的属性不在Y中,则将其加入到Y中; 第三步:重复第二步,直到没有属性可以添加到属性集Y中为止。最后得到的Y就是X+ A选项(A)+ F根据A→B可得(A)+ F ={A,B} ,B选项(B)+ F因为不存在B为左侧决定因素的函数依赖,所以(B)+ F ={B} ,C选项(AC)+ F根据A→B,BC→E,AC→B可得(A)+ F ={A,B,C,E} ,D选项(AD)+ F根据A→B,D→C, BC→E可得(A)+ F ={A,B,C,D,E} =U。所以选D选项。 如果有属性或属性组能唯一标识元组,则它就是候选码,也就是说,通过函数依赖所求出的候选码的闭包中,能够包含所有的属性。从第一问可以得出属性集AD包含候选码,且(A)+ F ={A,B},(D)+ F ={C,D},所以属性集AD中不存在一个真子集能决定全属性,故AD为R的候选码。答案选A。这里直接画图也可得出候选码。