📜  门| GATE-CS-2001 |第 48 题

📅  最后修改于: 2021-09-24 05:36:30             🧑  作者: Mango

R(A,B,C,D) 是一个关系。下列哪项没有无损连接、保留依赖的 BCNF 分解?
(A) A->B, B->CD
(B) A->B、B->C、C->D
(C) AB->C, C->AD
(D) A -> BCD答案: (C)
说明:背景:

  • 无损连接分解:
    如果以下函数依赖中的至少一个在 F+ 中,则将 R 分解为 R1 和 R2 是一种无损连接分解(函数依赖的闭包)

    R1 ∩ R2 → R1
       OR
        R1 ∩ R2 → R2
    
  • 依赖保留
    如果分解后函数依赖的闭包与分解前 FD 的闭包相同,则将 R 分解为 R1 和 R2 是一个依赖保留分解。
    一个简单的方法是检查我们是否可以从分解后存在的 FD 中导出所有原始 FD。

问题 :
我们知道,对于无损分解,公共属性应该是关系之一中的候选键。

A) A->B, B->CD

R1(AB) 和 R2(BCD)

B 是第二个的关键,因此分解是无损的。

B) A->B, B->C, C->D

R1(AB)、R2(BC)、R3(CD)

B 是第二个的键,C 是第三个的键,因此是无损的。

C) AB->C, C->AD

R1(ABC), R2(CD)

C 是第二个键,但 C->A 违反了 ABC 中的 BCNF 条件,因为 C 不是键。我们不能进一步分解 ABC,因为 AB->C依赖会丢失。

D) A -> BCD

已经在 BCNF。

因此,选项 C AB->C, C->AD 是答案。
这个问题的测验