【问题标题】:If there aren't any candidate keys with 1 attribute how do i find the composite candidate keys for a relation?如果没有任何具有 1 个属性的候选键,我如何找到关系的复合候选键?
【发布时间】:2019-01-10 22:26:19
【问题描述】:

当没有任何只有 1 个属性的键时,我很难找到关系的候选键,所以我必须找到复合候选键。

我有关系 R(A, B, C, D, E, F, G, H, I, J, K) 和 FD:

A、B → D

A → C, E

B→G

G → H, I

C → J, K

我必须找到 R 的键,但没有任何具有 1 属性的键。为了找到 R 的所有候选键,我计算 2 个字段的每个组合,或者我只检查组合 {A, B} 是否是候选键,因为有一个具有该组合的 FD?

提前致谢

【问题讨论】:

  • 你似乎很困惑,你的理由没有道理。在您的帖子中编辑 CK 的定义;然后显示您为找到所有 CK 所采取的所有步骤。 PS您说“我有[以下] FD”,但这还不足以找到 CK——当你通过定义和/或已发布的算法查找所有 CK 时,你会看到——我们需要足够了解才能找到确定持有的所有个FD。所以你需要知道那个列表是一个cover。 PS“我计算 2 个字段的每个组合”很困惑——复合 CK 有 2 个或更多属性。 (那句话也不清楚。)(你的第一句话也是。)
  • 谷歌“如何找到候选键”,你会发现很多资料。

标签: database composite-key candidate-key


【解决方案1】:

任何未出现在任何 FD 右侧的属性都必须是所有键的一部分。在您的示例中,这些属性是 A、B 和 F。计算 { A, B, F } 的闭包。如果它涵盖了 R(确实如此),则该集合是 R 的唯一(候选)键。

【讨论】:

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