简介
本文介绍一下数据库设计中的键如何定义
定义
超键
超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
超键可能存在信息冗余,比如某个超键可能是由3个字段组成,事实上由其中的2个字段就能唯一识别实体中的实例
候选键
候选键(Candidate Key):一个或者多个属性的集合,可以唯一确定实体的一个实例
主键
主键(Primary Key):从候选键中,选中用来作为唯一标识的属性或者属性组被称为主键
可选键
可选键(Alternative Key):候选键中没有选中的其他键,称为可选键
举例介绍
假如有一张表记录员工的信息,主要有身份证、姓名、性别、年龄这四个字段.(假设不存在重名的现象)我们可以做出如下的判断:
- 身份证唯一,所以是一个超键
- 姓名唯一,所以是一个超键
- (姓名,性别)唯一,所以是一个超键
- (姓名,性别,年龄)唯一,所以是一个超键
这里可以看出,超键的组合是唯一的,但可能不是最小唯一的
- 身份证唯一,而且没有多余属性,所以是一个候选键
- 姓名唯一,而且没有多余属性,所以是一个候选键
这里可以看出,候选键是没有多余属性的超键
考虑输入查询方便性,可以选择身份证为主键,那么姓名就是一个可选键
题目
在SQL Server数据库中,有一个学生信息表如下所示,在该表中不能作为候选键的属性集合为()(选择一项)
学号 | 姓名 | 性别 | 年龄 | 系别 | 专业 |
---|---|---|---|---|---|
20020612 | 李辉 | 男 | 20 | 计算机 | 软件开发 |
20060613 | 张明 | 男 | 18 | 计算机 | 软件开发 |
20060614 | 王小玉 | 女 | 19 | 物理 | 力学 |
20060615 | 李淑华 | 女 | 17 | 生物 | 动物学 |
20060616 | 赵静 | 男 | 21 | 化学 | 食品化学 |
20060617 | 赵静 | 女 | 20 | 生物 | 植物学 |
a){学号}
b){学号、姓名}
c){年龄、系别}
d){姓名、性别}
e){姓名、专业}
答案为b,因为候选键为没有多余属性的超键,只用学号就可以唯一识别学生信息,姓名属性是多余的.