Bob*_*Bob 6 sql database database-design relational-database
我需要了解超级密钥和复合密钥之间的区别.我发现的例子让人更加困惑.你能简单地澄清一下有什么区别吗?谢谢
Bra*_*vic 14
接受的答案并不完全准确......
几点:
1阿卡.复合,复合或连接.
2在NOT NULL列上.
小智 6
是的,我同意@Branko,接受的答案不是准确且不清楚的答案。
我将以Employee表为例:
CREATE TABLE Employee (
Employee ID,
FullName,
SSN,
DeptID
);
Run Code Online (Sandbox Code Playgroud)
要了解黑白超级键和候选键的区别,让我们首先检查一下其他类型的键吗?
1.候选键:表中的各个列,它们符合所有行的唯一性。在Employee表中,EmployeeID&SSN是候选键。
2.主键:是您选择用来维护表中唯一性的列。在Employee表中,您可以选择EmployeeID或SSN列,EmployeeID是首选,因为SSN是安全值。
3.备用键:主列以外的候选列,例如,如果EmployeeID为PK,则SSN将为备用键。
4.超级键:如果您将其他任何列/属性添加到主键,则它将变成超级键,例如EmployeeID + FullName是超级键。
5.复合键:如果表中没有任何单独的列符合候选键的条件,则必须选择2列或更多列以使行唯一。就像没有EmployeeID或SSN列一样,您可以将FullName + DateOfBirth用作复合主键。但是仍然存在重复行的可能性很小。