📅  最后修改于: 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是外键,并且两个表都相关。