传递依赖、部分依赖与范式
(2013-03-18 23:27:35)
标签:
it |
●设有一个关系模式R(A,B,C,D),函数依赖集F={A→B,B→C,C→D,D→A},那么R共有(1)个侯选码。R的每个属性都不可分,其可达到的最高范式是(2) 。
供选择的答案:
(1)A.
1
(2)A.
2NF
试题分析:
很多人可能误认为R中存在传递依赖如,由A→B、B→C尽管可以得出A→C,但是C并不传递依赖A,因为由C→D、D→A可知C→A,不满足传递依赖定义中的条件“Y→X不成立”。但是,A→C是成立的,因为它可根据Armstrong推理系统中的传递律(注意,不是传递依赖,不要把两者搞混了),只是不符合传递依赖的定义罢了。
试题答案:
第(2)空,很多人会选择2NF。下面再看一个例题:
●已知关系R(A,B,C,D,E)和函数依赖集F为{AB→D,BC→E,D→C},R的每个属性均不可分,则R能满足的最高范式是(3) 。
供选择的答案:
(3)A.
1NF
试题分析:
在关系模式R(U)中,对于属性组X、Y,如果有X→Y,并且对于X的任何一个真子集X’都不能得出X’ →Y,则称Y对X完全函数依赖。而如果X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖。可见部分函数依赖是在完全函数依赖的基础上定义的,也就是说不满足完全函数依赖就是部分函数依赖。
该题中,根据Armstrong推理系统可得AB→E,属性组AB的真子集有A、B、空集φ,但由单个的A不能得出A→E,由单个的B也不能得出B→E,空集φ显然也不能得出φ→E,所以E是完全函数依赖AB。很多人在确定候选码为AB后,一看到函数依赖集中有BC→E,就误认为存在部分函数依赖,这是一个常见的误区,须仔细揣摩,理解须准确到位。
同理,可以得出其它非主属性C、D都是完全函数依赖码AB,所以R∈2NF。
试题答案:

加载中…