我正在尝试理解BCNF数据库,但我不能完全理解它。
考虑以下关系:
R (A, B, C, D, E, F, G)以下函数依赖关系成立:
A -> E, F
A -> G
A, B -> D
B -> C
E, F -> G
A -> D我如何让它成为BCNF?
发布于 2012-08-02 19:51:55
非正式地说,在家庭作业问题中,你可以通过以下方式访问BCNF
部分密钥依赖关系的一个示例是对
AB->D
A->D因为A单独确定D,所以函数依赖AB->D具有部分键依赖。
传递依赖的一个示例是对
A->EF
EF->G不能保证你可以将给定的关系规范化,比方说,BCNF,没有更高的。(这似乎在大学生中造成了很多困惑。)删除部分键依赖项以获取2NF可能会将所有关系保留在5NF中。
发布于 2013-12-04 10:03:20
我们可以使用阿姆斯特朗公理来得到F+
A -> D、E、F、G
B -> C (A,B -> D被忽略,因为A -> D)
E,F -> G
我们可以得到主键(A,B)。
根据BCNF的定义,我们必须将A-> (E,F),B -> C,A -> D和(E,F) ->G从原始模式中分离出来。
(A,B)主键(A,B)
(B,C)主键(B)
(A,D)主键(A)
(A,E,F)主键(A)
(E,F,G)主键(E,F)
这是BCNF分解。
发布于 2020-08-10 03:13:29
您可以尝试这样做:表1:具有复合主键(A,B)和外键( B)的A,B,D,E,F参见表2(B)表2: B,带有B的C是主键表3:具有复合主键( A,E,F)的A,E,F,G
https://stackoverflow.com/questions/11773606
复制相似问题