【发布时间】:2014-04-14 02:28:36
【问题描述】:
考虑架构 S=(A,B,C,D) 以 AB 作为主键,并且下面的函数依赖 (FD) 保持在它上面:AB --> C, AB --> D, BC -- > D. 以下分解是 Boyce-Codd 范式 (BCNF) 吗? S1=(A,B,D) & S2=(B,C,D)
尝试的答案可能会遗漏一些东西: 使用给定的 FD,在 S1 中,键是 AB;在 S2 中,关键是 BC。 S1 包含 FD AB-->D,其左侧包含其键 AB。 S2 包含 FD BC-->D,其左侧包含其密钥 BC。 因此,分解似乎是在 BCNF 中。
但是,我们知道 BCNF 分解是无损的,而这个不是。 常见的属性是 {B,D},它的闭包仍然是 {B,D}。
那么错误在哪里?
【问题讨论】:
标签: relational-database database-normalization functional-dependencies bcnf