如您所知,只有2个属性的所有关系都在BCNF中。
所以,问题是:为什么我们不将所有关系分解为2属性关系?
答案是:因为如果我们这样做,就无法实现无损加入。
你能给我一个答案的例子吗?给予一个关系,将它分解为一些2-attriute关系。然后,当我们加入它们时,数据就会丢失。
非常感谢你的帮助。
答案 0 :(得分:1)
有时你不能根据功能依赖关系将表分解为2个属性,我教授总是使用的经典例子是城市,州,邮政编码
FD{ city, state -> zip, zip->city}
分解关系R(城市,州,邮政编码)不具有依赖性保留。
防爆。你不能有两个表R(城市,州)和S(拉链,城市),因为城市,州是一个超级密钥,但它不确定表R中的拉链