0

我有一个关系:

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 作为复合键,因为放置查询会太混乱。

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

谢谢你的时间,

4

1 回答 1

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)
于 2016-04-12T19:31:16.223 回答