这是教科书中的一个例子:考虑关系 R (A ,B ,C ,D ,E ) 与 FD 的 AB -> C、C -> B 和 A -> D。
我们知道关键是 ABE 和 ACE。分解:ABE+=ACE+=ABCDE。
你如何检查最小化?我知道 AB+=ABD 并且教科书上说因为 AB+ 不包括 C。那么它是最小的。C+=AB 和 A+=AD 也是最小的。但我不知道为什么。你如何检查最小化?
另外,除了检查是否执行 3-NF 的那些之外,我们是否必须找到所有的 FD?
然后我们检查 AB -> C 是否可以拆分为 A -> C 和 B -> C,我们注意到它们不能独立存在,因此 AB -> C 不可拆分。
我们剩下最后的关系:S1(ABC),S2(BC),S3(AD)和密钥(因为不存在)S4(ABE)(或S4(ABC))。然后我们删除 S2,因为它是 S1 的子集。
如果它在3NF并且没有违规,那么他们为什么将原始关系拆分为:S1(A,B,C),S2(A,D)和S4(A,B,E)。
书名和页码:Ullman's Database Systems 第 103 页