关于候选键和超级键

时间:2012-03-01 18:25:44

标签: sql primary-key tuples

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

1 个答案:

答案 0 :(得分:0)

  

这两个键的组合是否是超级键,即。 (a,b)会成为超级钥匙吗?

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

  

或者它是候选键。

不,它不再是最小的。

  

我的假设是它将是一个超级密钥,因为候选键的定义表明它是不可简化的超级密钥,并且两个字段a和b的组合可以减少为a或b。这个逻辑是否正确?

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

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