我想大家指导我一个有关BCNF的问题!
大家好:
最近我在学习数据库技术的规范化设计时,就遇到了一个有关BCNF的问题,我在这种规范上还是了解不深.请大家指导,谢谢!
例子:
设有关系模式R(A,B,C),根据语义有如下函数依赖集:
F={A->B,(B,C)->A}.
关系模式R的规范化程度最高达到( ).
A. 1NF
B. 2NF
C. 3NF
D. BCNF
我在做这题的时候就选择了C.我的理由是:在关系R中,明显可以看出(B,C)是R的码,还有可以根据函数依赖公理系统中的增广律推出:A->B(已知),A->AB(增广律),
(A,C)->(A,B,C).因此根据公理,也可以推出(A,C)也是关系R中的一个候选码.由于
(A,C),(B,C)都是候选码头,也就是说关系R中的属性全部都是主属性,没有非主属性,
因此是满足3NF的,又A->B的原因,A不包含码,所以关系R是不满足BCNF的.
可是答案是选择:D
但是在书上对这题的解释的时候,其中也是说到了A是非码属性,也是就是非主属性,不会包含码,那如果按照题目分析的话,它连3NF都满足不了,因为存在传递函数依赖.F={(B,C)->A,A->B} (这样算传递函数依赖吗??)
因此我对于BCNF的理解很不深刻,请大家能否指点一下我呢???谢谢!!
谢谢大家!谢谢!