DBMS 中各种类型的键
DBMS 中不同类型的键如下:
- 候选键 - 表中的候选键定义为最小且可以唯一标识表中任何数据行的键集。
- 主键 - 主键是从候选键中选择的一个键,并成为表的标识键。它可以唯一标识表的任何数据行。
- 超键 - 超键是主键的超集。超键包含一组属性(包括主键),这些属性可以唯一标识表中的任何数据行。
- 复合键 - 如果表的任何单个属性都不能作为键,即它不能唯一地标识一行,那么我们将组合两个或多个属性来形成一个键。这被称为复合键。
- 次键 - 只有一个候选键被选择为主键。其余的被称为次键。
- 外键 - 外键是表中充当另一个表主键的属性值。因此,外键用于将两个表链接在一起。应非常小心地在外键列中输入数据,因为输入错误的数据可能会使两个表之间的关系失效。
一个解释不同键的例子:
<学生>
学号 | 学生姓名 | 学生电话 | 课程号 |
---|---|---|---|
1 | Andrew | 6615927284 | 10 |
2 | Sara | 6583654865 | 20 |
3 | Harry | 4647567463 | 10 |
<课程>
课程号 | 课程名称 | 课程教师 |
---|---|---|
10 | 数据库管理系统(DBMS) | Korth |
20 | 算法 | Cormen |
30 | 算法 | Leiserson |
<选课>
学号 | 课程号 |
---|---|
1 | 10 |
2 | 20 |
3 | 10 |
<学生> 表中的超键:
{Student_Number} {Student_Phone} {Student_Number,Student_Name} {Student_Number,Student_Phone} {Student_Number,Subject_Number} {Student_Phone,Student_Name} {Student_Phone,Subject_Number} {Student_Number,Student_Name,Student_Phone} {Student_Number,Student_Phone,Subject_Number} {Student_Number,Student_Name,Subject_Number} {Student_Phone,Student_Name,Subject_Number}
<课程> 表中的超键:
{Subject_Number} {Subject_Number,Subject_Name} {Subject_Number,Subject_Instructor} {Subject_Number,Subject_Name,Subject_Instructor} {Subject_Name,Subject_Instructor}
<选课> 表中的超键:
{Student_Number,Subject_Number}
<学生> 表中的候选键是 {学号} 或 {学生电话}
<课程> 表中的候选键是 {课程号} 或 {课程名称,课程教师}
<选课> 表中的候选键是 {学号,课程号}
<学生> 表中的主键是 {学号}
<课程> 表中的主键是 {课程号}
<选课> 表中的主键是 {学号,课程号}
<选课> 表中的复合键是 {学号,课程号}
<学生> 表中的次键是 {学生电话}
<课程> 表中的次键是 {课程名称,课程教师}
{课程号} 是 <学生> 表的外键,也是 <课程> 表的主键。
广告