【问题标题】:finding all candidate keys of relation找到关系的所有候选键
【发布时间】:2012-01-04 06:52:09
【问题描述】:

我正在遵循this PDF 中的算法,以便从给定的函数依赖关系中找到我的关系的所有候选键。

我发现我所有的属性都是中间属性,因此没有必要的属性。算法的第 4 步(第 6 页)说:Let L be the list of all non-empty subsets of M (the middle-ground attributes)。但是我有 7 个中间属性,这意味着我需要 L 中的 127 个元素。我做错了吗?

请有人解释一下我应该如何在给定一组功能依赖项的情况下找到候选键?

【问题讨论】:

  • 您使用的是特定语言吗?如果有,我们可以为您重新标记问题,以便您获得更多帮助。欢迎访问该网站;)
  • 嗨,我不知道具体的语言。我只是想学习数据库设计和约束,不知道如何计算候选键。想不出除了数据库之外的任何其他标签。
  • use text, not images/links, for text--including tables & ERDs. 仅将图像用于无法表达为文本或扩充文本的内容。无法搜索或剪切和粘贴图像。在图像中包含图例/键和说明。使用编辑功能插入图像/链接。让您的帖子自成一体。

标签: database database-normalization functional-dependencies


【解决方案1】:

您引用的论文确实表明您需要从具有 127 个元素的 L 开始。不要忘记,一旦找到一组可以补充候选键的必要属性集的中间属性集,L 的大小就可以迅速减小。

【讨论】:

    【解决方案2】:

    第 4 步:在 pdf 中计算所有超级键而不是候选键..您不会得到 127 个候选键..

    这里是候选键和超级键的区别:

    超级键:超级键代表键的超集。 超级键是一组一个或多个属性,它们被集合起来,可以唯一地识别所有其他属性。

    候选键: 候选键是超级键,没有适当的子集是超级键。换句话说,候选键是最小的超级键。

    让我们考虑一个例子:
    关系为R(A,B,C,D,E)

    功能依赖是:

    A→BCDE 这意味着属性“A”唯一地确定了其他属性 B、C、D、E。 BC→ADE 这意味着属性 'BC' 共同决定了关系中的所有其他属性 A,D,E。

    主键:A

    候选键:A、BC

    超级键:A、BC、ABC、AD

    ABC、AD 不是候选键,因为两者都不是最小超级键。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2017-04-27
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      相关资源
      最近更新 更多