我有一个关系:
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作为复合键,因为放置查询会太乱。
我很欣赏在本网站以及网络上的其他来源上有许多类似的问题,但我似乎无法在我自己的问题中复制他们的解决方案。
感谢您的时间,
答案 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)