我正在尝试将此关系转换为3rd Normal Form和BCNF。
给出具有三个FD的关系R(A1,A2,A3,A4)
A2,A3→A4;
A3,A4→A1;
A1,A2→A3。
提供架构的3NF和BCNF形式并解释原因。
我记得这样做了,但是很生锈。
这是我的开始。
我对功能依赖性A2,A3-> A4进行了划分
因此创建:
R1(A2,A3,A4)
R2(A1,A2,A3)
由于没有更多的功能性或传递性依赖性,因此应在3NF中。
如果这种方法正确,我的问题是第一个。
第二,因为R1的两个键(A2,A3)和R2的(A1,A2)都是复合键,难道不是也存在于BCNF中吗?
我想知道这是否是真的,如果不是这种关系的BCNF是什么?
如果您需要更多信息,请告诉我。
谢谢您的帮助。
答案 0 :(得分:1)
鉴于如果每个行列式都是超键或每个确定属性都是质数,则该模式位于3NF中,那么该模式已位于3NF中。实际上,R
的唯一候选键是{A1, A2}
和{A2, A3}
。 A2
必须位于每个键中,因为它不会出现在依赖项的任何右侧。如果将其添加到A1
中,则会发现您获得了候选键,因为A1, A2
确定了所有属性,并且尝试将A3
添加到A2
时也是如此。添加A4
,A1
,A2
和A3
是主要属性,并且没有任何函数依赖性违反3NF的说法是不正确的。
鉴于以下事实:如果每个非平凡的依赖项都有一个超键决定因素,那么该模式就在BCNF中,那么对于A3, A4 → A1
的依赖项,您的模式就不在BCNF中,因为{A3, A4}
不是超级键。
应用“分析”算法在BNCF中生成分解模式,可以使用依赖项A3, A4 → A1
在BCNF中分解,这产生两个关系:
R1 (A1, A3, A4) (with candidate key {A3, A4})
R2 (A2, A3, A4) (with candidate key {A2, A3})
两者都在BCNF中,因此不需要进一步分解,但是请注意,在此过程中,依赖项A1 A2 → A3
丢失了。