这是 2011 年秋季数据库课程(现在在 coursera.org 自学)的一个问题。
考虑以下关系模式:
R1(A,B,C), R2(B,D)
(a) 考虑该模式并假设在该模式中保持关系的唯一功能依赖是 A → B、A → C、B → A、A → D,以及由此而来的所有依赖。BCNF 中的模式是什么?
(b) 假设我们从 (a) 部分中省略依赖 A → D。BCNF 中的模式是什么?
(a) 问题的答案是肯定的,它确实符合我的答案。第二个问题的正确答案也是肯定的。但这与我的回答不符。
当我们省略 A → D 依赖时,D 不再依赖于 B,因此 B 不是 B → D 中的键。所以,我们违反了 BCNF。
我究竟做错了什么?