BCNF(3.5NF)分解问题

时间:2016-04-12 14:51:44

标签: database database-schema database-normalization bcnf

我有一个关系:

R(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)

我试图将其分解为BCNF,这是我的功能依赖:

 - A -> B, C, D
 - B -> A, C, D
 - C -> A, B, D
 - D -> A, B, C
 - F -> A, B, C, D, E, G, H, I, J, K, L, M, N, O, P, Q
 - A, E, G -> B, C, D, F, H, I, J, K, L, M, N, O, P, Q

虽然C是主键的明确选择,但它是一个大约段落的字段,所以我选择A,E,G作为复合键,因为放置查询会太乱。

我很欣赏在本网站以及网络上的其他来源上有许多类似的问题,但我似乎无法在我自己的问题中复制他们的解决方案。

感谢您的时间,

1 个答案:

答案 0 :(得分:1)

此关系有五个(候选)键:

{ (A, E, G) (B, E, G) (C, E, G) (D, E, G) (F) }

使用分析算法在BCNF中进行分解,产生以下两种关系:

R1 (A, B, C, D)
R2 (A, E, F, G, H, I, J, K, L, M, N, O, P, Q)