考虑表 zoo(a,b,c,d,e,f,g) 和 FD
a → b,d,e,g
c,d → f
f → c
e,g → d
对其进行归一化。
候选键是 {a,c} {a,f},所以素数是 {a,c,f}
2NF 被 a → b,d,e,g 违反
然后新表是 t1(a,b,d,e,g), zoo(a,c,f)
3NF 被 e,g → d 违反
然后新表是 t2(e,g,d), t1(a,b,e,g), zoo(a,c,f)
BCNF 违规是素数 -> 素数,但是 c 和 f 是素数但 d 是非素数,因此 lhs 具有素数和非素数,而 rhs 是素数。
那么我的问题是如何处理 FD c,d → f?