考虑模式 R(A,B,C,D) 和函数依赖关系 A->B 和 C->D。
然后将 R 分解为 R1(AB) 和 R2(CD) 是
(A)依赖保留和无损连接
(B)无损连接但不保留依赖
(C)依赖保留但不是无损连接
(D)非依赖保留和非无损连接答案: (C)
说明:依赖保留分解:
如果分解后函数依赖的闭包与分解前 FD 的闭包相同,则将 R 分解为 R1 和 R2 是一个依赖保留分解。
一个简单的方法是检查我们是否可以从分解后存在的 FD 中导出所有原始 FD。
在上面的问题中,R(A, B, C, D) 被分解为 R1 (A, B) 和 R2(C, D) 并且只有两个 FD A -> B 和 C -> D。所以,分解是依赖保留
无损连接分解:
如果以下函数依赖中的至少一个在 F+ 中,则将 R 分解为 R1 和 R2 是一种无损连接分解(函数依赖的闭包)
R1 ∩ R2 → R1
OR
R1 ∩ R2 → R2
上题中R(A,B,C,D)分解为R1(A,B)和R2(C,D),R1∩R2为空。因此,分解不是无损的。
这个问题的测验