0

如您所知,所有只有 2 个属性的关系都在 BCNF 中。

所以,问题是:为什么我们不把所有的关系分解成 2 属性的关系呢?

答案是:因为如果这样做,我们就无法实现无损连接。

你能给我一个这个答案的例子吗?给出一个关系,将其分解为一些 2-attriute 关系。然后,当我们加入他们时,数据就会丢失。

非常感谢你的帮助。

4

1 回答 1

1

有时您无法根据函数依赖关系将表分解为 2 个属性,我的教授经常使用的一个经典示例是 city, state, zipcode

FD{ city, state -> zip, zip->city}

分解关系 R(city, state,zipcode) 不会有依赖关系保留。

前任。您不能拥有两个表 R(city, state) 和 S(zip,city) 因为 city,state 是一个超级键,但它不能确定表 R 中的 zip

于 2014-11-11T02:42:20.647 回答