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

📅  最后修改于: 2021-06-28 19:06:36             🧑  作者: 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是答案。
这个问题的测验