
要判断范式,最重要的是看主码的!!!
第一题:
左→右
(S,C)→T
C→D
(S,C)→G
T→C
这样的话可以判断出主码是:S(给出了四个属性推断:只要出现在右属性的一定不是主属性!而T,D,G,C都出现了。所以S是主属性
由因为存在着(S,C)→T 就是说明存在着部分函数依赖!(通俗点说就是S →T是不能直接推断出来的)。
存在着部分函数依赖的话就不能满足2NF了。所以就是1NF
第二题的思路一样!
关于楼主的候选码的问题!楼主的完全没有理解概念!
我现在给楼主一道题和解答来帮助楼主理解下
有关系模式P(H,I,J,K,L),根据语义有如下函数依赖集:
F={H→J,IJ→K,JK→H,HI→L}下列属性组中的()是关系模式的候选码。
Ⅰ、(H,I) Ⅱ、(H,K) Ⅲ 、(I,J) Ⅳ、(J,K) Ⅴ、(I,K)
A:只有Ⅲ
B:Ⅰ和Ⅲ
C:Ⅰ、Ⅱ、Ⅳ
D:Ⅱ、Ⅲ、Ⅴ
左→右
H→J,
IJ→K,
JK→H,
HI→L
这样的话可以判断出主码是:I(给出了四个属性推断:只要出现在右属性的一定不是主属性!而J,K,H,L都出现了。所以I是主属性)。
这样的话:Ⅰ、(H,I) Ⅱ、(H,K) Ⅲ 、(I,J) Ⅳ、(J,K) Ⅴ、(I,K)
中的:Ⅰ、(H,I) Ⅲ 、(I,J) Ⅴ、(I,K)都是候选码!所以答案应该是 ⅠⅢ Ⅴ
但是选项不存在。所以就是B!!!
楼主明白了吗?
ACE、BCE、DCE解析:观察函数右侧,CE不可能被任何函数决定,因此候选码必须包含CE。
在{C,E}中增加属性,第一次增加一个,发现增加A,B,D均可决定所有属性,即为所求解。
当然,如果并非所有情况都存在,需要增加两个甚至更多。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)