2

考虑以 AB 作为主键的模式 S=(A,B,C,D),并且以下函数依赖关系 (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}。

那么漏洞在哪里呢?

4

1 回答 1

2

“无损分解”中的无损意味着:

  • 原始模式的任何关系
  • * 满足原始模式中的所有依赖关系*
  • 可以通过关系投影分解成对应于分解图式的关系值
  • 并且这些分解的关系值的自然连接保证再次产生原始关系值。

这就是“无损”的含义,这就是它的全部含义。

它与分解模式中 FD 的可表达性无关(分解可能确实“丢失”了 - 正如您的示例中的情况)。

没有错误。

于 2014-03-10T21:05:13.983 回答