Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我们有一个关系模式 R(A, B, C, D),具有一组依赖项:
ABC -> D D -> A
如何将 R 分解为 BCNF 关系?唯一可行的方法似乎是丢弃其中一个 FD,不管我怎么想。还有其他方法吗?
没错,人们总是可以在保留 FD 的同时无损地分解为 3NF,但 BCNF 可能不会保留它们。尽管如此,这是一个无损分解:组件,如果持有原件的投影,将加入原件。但是,只要原始值具有给定值,组件就应该是它的投影。(如果不是,则发生错误,因此我们希望 DBMS 适当地约束组件。)因此,将组件约束为原始投影是必要但足够的。ABC 是微不足道的(因为它是一把钥匙)。这让我们需要要求 AD = ABCD PROJECT {DA}。我们说组件必须满足“平等依赖”。