【问题标题】:Find all minimal candidate keys of R找到 R 的所有最小候选键
【发布时间】:2014-03-30 18:36:06
【问题描述】:

我有一个R= {A,B,C,D,E,F,G,H,I,J,K} F={ABGH->IJKF,JIGH->ABF, A->CDE} 我需要找到R 的所有最小候选键,以及如何将R 标准化为BCNF

到目前为止,我得到了以下答案: ABGHGHJIKAGHIJK

但我正在从这个网站检查我的答案:checked site

我不知道为什么“K”不是答案的一部分,我不确定我的答案是否正确。谢谢!

【问题讨论】:

    标签: database functional-dependencies database-theory


    【解决方案1】:

    R有两个候选键:{ABGH}和{GHIJ}。

    {GHJIK} 不是候选键,但如果它,那么 {AGHIJK} 将不是最小键。

    属性 K 不是两个候选键的一部分,因为 {ABGH} 的闭包包含 K,而 {GHIJ} 的闭包包含 K。例如,对于 {ABGH} 。 . .

    ABGH->ABGH (trivial)
    ABGH->IJKF (given), therefore
    ABGH->ABGHIJKF
    A->CDE (given), therefore
    ABGH->ABCDEGHIJKF, or in alpha order
    ABGH->ABCDEFGHIJK
    

    【讨论】:

      【解决方案2】:

      BCNF 分解将是 R1 (ACDE) 和 R2(ABFGHIJK) 因为在 R (A--> CDE) 中是部分依赖。所以我们在 R1 中分解它,其中 A 是 ck,R2 中 ABGH 和 GHIJ 是候选键。

      【讨论】:

        【解决方案3】:

        没有。添加到候选键的属性构成一个超级键。因此我们也可以说候选键是最小的超级键。这里ABGHGHIJ 可以确定关系的所有其他属性,因此它们成为候选键,因此GHIJK 成为超级键(由于添加了K)而不是候选键并且基于类似的原则AGHIJK (由于添加了AK)也成为一个超级键,因为它有一个候选键GHIJ

        【讨论】:

          猜你喜欢
          • 2012-01-04
          • 1970-01-01
          • 1970-01-01
          • 2017-04-27
          • 1970-01-01
          • 1970-01-01
          • 2011-10-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多