我需要了解超级密钥和复合密钥之间的区别。我发现的例子让人更加困惑。你能简单地澄清一下有什么区别吗?感谢
答案 0 :(得分:14)
接受的答案并不完全准确......
更多要点:
1 Aka。复合,复合或连接。
2 在NOT NULL列上。
答案 1 :(得分:3)
是的,我同意@Branko,接受的答案不准确且不清楚。
我将以Employee表为例:
CREATE TABLE Employee (
Employee ID,
FullName,
SSN,
DeptID
);
知道差异b / w Super&候选键,我们先检查一下其他类型的键是什么?
<强> 1。候选键:是表中的单个列,它们符合所有行的唯一性。这里是Employee表EmployeeID&amp; SSN是候选密钥。
<强> 2。主键:是您选择在表中保持唯一性的列。在Employee表中,您可以选择EmployeeID或SSN列,EmployeeID是首选,因为SSN是安全值。
第3。备用密钥:其他主要列的候选列,如果EmployeeID是PK,那么SSN将是备用密钥。
<强> 4。超级密钥:如果您将任何其他列/属性添加到主键,那么它将成为超级密钥,例如EmployeeID + FullName是超级密钥。
<强> 5。复合键:如果表格没有任何符合Candidate键的单独列,则必须选择2列或更多列才能使行唯一。就像没有EmployeeID或SSN列一样,您可以将FullName + DateOfBirth设为Composite主键。但仍然存在重复行的可能性很小。
答案 2 :(得分:0)
超级密钥是一组一个或多个属性,这些属性共同使我们能够唯一地标识实体集中的实体。 例如,customer-id属性 实体集客户足以区分一个客户实体与另一个客户实体。因此,customer-id是一个超级钥匙。
复合键是表格的多个字段/列的组合。它可以是候选键,主键。
答案 3 :(得分:-3)
超级键唯一标识一行。它可以由一列或多列组成。复合键是由多个列组成的键。
如果Super Key由多个列组成,它也是一个复合词。
如果复合键唯一标识一行,则它也是一个超级键。
我没有看到名称&#39;超级密钥&#39;使用过多:它通常只被称为“唯一键”。