BCNF (3.5NF) 分解问题

BCNF (3.5NF) Decomposition Issues

我有一个关系:

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

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

感谢您的宝贵时间,

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

{ (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)