DBMS键key详解

  • 键key在关系数据库中起着重要作用。
  • 它用于从表中唯一标识任何记录或数据行。它还用于建立和识别表之间的关系。
例如:在学生表中, ID被用作键, 因为它对于每个学生都是唯一的。在PERSON表中, passport_number, license_number, SSN是键key, 因为它们对于每个人都是唯一的。
DBMS键key详解

文章图片
键key类型
DBMS键key详解

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

文章图片
2.候选键
  • 候选键是可以唯一标识元组的属性或属性集。
  • 除主键外的其余属性均视为候选键。候选键与主键一样强。
例如:在EMPLOYEE表中, id最适合主键。其余属性(如SSN, Passport_Number和License_Number等)被视为候选键key。
DBMS键key详解

文章图片
3.超级键
超级键是一组可以唯一标识元组的属性。超级键是候选键的超集。
例如:在上面的EMPLOYEE表中, 对于(EMPLOEE_ID, EMPLOYEE_NAME), 两个雇员的名称可以相同, 但是他们的EMPLYEE_ID不能相同。因此, 这种组合也可能是关键。
【DBMS键key详解】超级键key将是EMPLOYEE-ID, (EMPLOYEE_ID, EMPLOYEE-NAME)等。
4.外键
  • 外键是表的列, 用于指向另一个表的主键。
  • 在公司中, 每个员工都在特定部门工作, 而员工和部门是两个不同的实体。因此, 我们无法在employee表中存储部门的信息。这就是为什么我们通过一个表的主键链接这两个表。
  • 我们将DEPARTMENT表的主键Department_Id添加为EMPLOYEE表中的新属性。
  • 现在在EMPLOYEE表中, Department_Id是外键, 并且两个表都相关。
DBMS键key详解

文章图片

    推荐阅读