📜  DBMS密钥:主键,外键,候选键和超级键

📅  最后修改于: 2020-12-11 02:05:52             🧑  作者: Mango

按键

  • 密钥在关系数据库中起着重要的作用。
  • 它用于从表中唯一标识任何记录或数据行。它还用于建立和识别表之间的关系。

例如:在学生表中,ID被用作键,因为它对于每个学生都是唯一的。在PERSON表中,passport_number,license_number,SSN是密钥,因为它们对于每个人都是唯一的。

密钥类型:

1.主键

  • 它是第一个密钥,用于唯一地标识一个实体的一个实例。正如我们在PERSON表中看到的那样,一个实体可以包含多个键。从这些列表中最合适的密钥将成为主密钥。
  • 在EMPLOYEE表中,ID可以是主键,因为它对于每个员工都是唯一的。在EMPLOYEE表中,我们甚至可以选择License_Number和Passport_Number作为主键,因为它们也是唯一的。
  • 对于每个实体,主键的选择均基于需求和开发人员。

2.候选键

  • 候选键是可以唯一标识元组的属性或属性集。
  • 除主键外的其余属性均被视为候选键。候选键与主键一样强。

例如:在EMPLOYEE表中,id最适合主键。其余属性(如SSN,Passport_Number和License_Number等)被视为候选密钥。

3.超级键

超级键是一组可以唯一标识元组的属性。超级键是候选键的超集。

例如:在上面的EMPLOYEE表中,对于(EMPLOEE_ID,EMPLOYEE_NAME),两个雇员的名称可以相同,但是他们的EMPLYEE_ID不能相同。因此,这种组合也可能是关键。

超级密钥将是EMPLOYEE-ID,(EMPLOYEE_ID,EMPLOYEE-NAME)等。

4.外键

  • 外键是表的列,用于指向另一个表的主键。
  • 在公司中,每个员工都在特定部门工作,而员工和部门是两个不同的实体。因此,我们无法将部门的信息存储在employee表中。这就是为什么我们通过一个表的主键链接这两个表。
  • 我们将DEPARTMENT表的主键Department_Id添加为EMPLOYEE表中的新属性。
  • 现在在EMPLOYEE表中,Department_Id是外键,并且两个表都相关。