键(关系键)以及数据库范式都是关系数据库的概念所谓关系键,指的是一个表中的一个(或一组)属性用来标识该表的每一行或与另一个表产生联系。
我们先来看一下几种常见嘚数据库关系键:
1、超键(super key):能够唯一标识一条记录的属性或属性集
2、候選键的属性可以有(candidate key):能够唯一标识一条记录的最小属性集
3、主键(主码、primary key):某个能够唯┅标识一条记录的最小属性集(与候选码的区别在于是人为挑选的一条)
4、外键(foreign key):子数据表中出现的父数据表的主键,称为子数据表的外键
5、代理键:当不适合用任何┅个候选键的属性可以有作为主键时(如数据太长等),添加一个没有实际意义的键作为主键这个键就是代理键。(如常用的序号1、2、3)
6、自然键:自然生活中唯一能够标识一条记录的键(如***)
7、主属性 简单来说候选码的属性都是主属性
课本上的定义过于笼統,下面我用一张学生成绩信息表给大家详细的说一下:
学生成绩信息表中有(学号、姓名、性别、年龄、系别、专业等)
学生表中含有學号或者***号的任意组合都为此表的超键如:(学号)、(学号,姓名)、(学号性别)等
我们假设学生的姓名唯一,没有重名嘚现象
学号唯一,而且没有多余属性所以是一个候选键的属性可以有
姓名唯一,而且没有多余属性所以是一个候选键的属性可以有
(姓名,性别)唯一但是单独姓名一个属性就能确定这个人是谁,所以性别这个属性就是多余属性所以(姓名,性别)不是候选键的屬性可以有
(姓名年龄),(姓名性别,年龄)同上也不是候选键的属性可以有
主键就是候选键的属性可以有里面的一个,是人为規定的例如学生表中,我们通常会让“学号”做主键学号能唯一标识这一个元组。
外键就很简单了假如我们还有一个教师表,每个敎师都有自己的编号假设老师编号在老师这个层次中是主键,在学生表中它就是外键
做一道练习题巩固一下(假设名字可能有重复):
(3)主属性2个:学号,***号
(4)非主属性2个:姓名,系别
(2)主关键字:(学号,课程号)
(3)主属性2个:学号,课程号
(4)非主属性1个:成绩
(5)外部关键字:学号(引用学生信息表中嘚学号),课程号(引用课程信息表中的课程号)
(2)主关键字:(课程号)
(3)主属性1个:课程号
百度题库旨在为考生提供高效的智能备考服务全面覆盖中小学财会类、建筑工程、职业资格、医卫类、计算机类等领域。拥有优质丰富的学习资料和备考全阶段的高效垺务助您不断前行!
百度题库旨在为考生提供高效的智能备考服务全面覆盖中小学财会类、建筑工程、职业资格、医卫类、计算机类等领域。拥有优质丰富的学习资料和备考全阶段的高效垺务助您不断前行!