【问题标题】:Regarding Candidate Keys and Superkeys关于候选键和超级键
【发布时间】:2012-09-12 09:17:31
【问题描述】:

我有一个关于候选键和超级键的快速问题。假设您有两个键 (a, b),其中“a”是主键,b 是候选键。这两个键的组合是否会成为超级键,即。 (a,b) 会是超级键吗?或者它会是一个候选键。我的假设是它将是一个超级密钥,因为候选密钥的定义表明它是一个不可约的超级密钥,并且两个字段 a 和 b 的组合可以简化为 a 或 b。这个逻辑正确吗?或者我在这里错过了什么?谢谢!

【问题讨论】:

  • 因为 a 和 b 是键,所以 a + some 属性或 b + some 属性是超级键。那么 a + b 也是超级键。
  • 但是超级键本身不会被视为候选键,因为它不是最小的,对吗?
  • @BenNelson 候选键始终是超级键,反之亦然。
  • 酷,谢谢你的澄清!!!

标签: sql primary-key tuples


【解决方案1】:

这两个键的组合会是一个超级键,即。 (a,b) 会是超级键吗?

是的,它仍然可以唯一标识行。

或者它会是一个候选键。

不,它不再是最小的了。

我的假设是它是一个超键,因为候选键的定义表明它是一个不可约的超键,并且 a 和 b 两个字段的组合可以简化为 a 或 b。这个逻辑对吗?

几乎。是的,这将是一个超级密钥,但不是因为它可以减少。这将是一个超级键,因为它是独一无二的。

每个候选键都是超级键,但不是每个超级键都是候选键。所以{a} 既是候选键又是超级键,{b} 既是候选键又是超级键,{a, b} 只是超级键。

【讨论】:

    猜你喜欢
    • 2012-05-21
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 2011-04-30
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多