我需要了解超级密钥和复合密钥之间的区别。我发现的例子让人更加困惑。您能简单说明一下有什么区别吗?谢谢
接受的答案并不完全准确......
还有几点:
1又名。复合、复合或串联。
2 在 NOT NULL 列上。
是的,我同意@Branko,接受的答案不准确且不清楚。
我将以 Employee 表为例:
CREATE TABLE Employee (
Employee ID,
FullName,
SSN,
DeptID
);
要了解超级键和候选键的区别,我们首先检查一下其他类型的键是什么?
1。候选键: 是表中符合所有行唯一性的各个列。在 Employee 表中,EmployeeID 和 SSN 是候选键。
2。主键: 是您选择用于保持表中唯一性的列。在 Employee 表中,您可以选择 EmployeeID 或 SSN 列,EmployeeID 是更好的选择,因为 SSN 是一个安全值。
3.备用键: 主列以外的候选列,例如如果 EmployeeID 是 PK,则 SSN 将是备用键。
4。超级键: 如果您向主键添加任何其他列/属性,那么它就会成为超级键,就像 EmployeeID + FullName 是一个超级键。
5。复合键: 如果表没有任何符合候选键资格的单独列,则您必须选择 2 个或更多列才能使行唯一。就像如果没有 EmployeeID 或 SSN 列,那么您可以将 FullName + DateOfBirth 设置为复合主键。但重复行的可能性仍然很小。
A superkey 是一组一个或多个属性,这些属性组合起来使我们能够唯一地标识实体集中的实体。 例如,客户 ID 属性 实体集 customer 足以区分一个客户实体与另一个客户实体。因此,customer-id 是一个超级键。
复合键是表中多个字段/列的组合。它可以是候选键、主键。
eferbthtryu6555555555555555555555555dmjyyfgfgfgfgfgfgfgfgfgrzesrzesrzesrzesrzesrzesrzesrzesrzesrzesrzesrzesrzesrzessanye,mmmmmmmmmmmj.jgbnxdfvgwee afffdnxb
超级键唯一标识一行。它可以由一列或多列组成。复合键是由多个列组成的键。
如果超级键由多于一列组成,那么它也是复合键。
如果复合键唯一标识一行,那么它也是超级键。
我没有看到“超级密钥”这个名称被过多使用:它通常被称为“唯一密钥”。