课本上给各类键的定义以下:(全部的键都是一个集合,这个集合能够包括一个集,也能够是多个集)spa
超键(super key):在关系中能唯一标识元素属性的集称为关系模式的超键。.net
候选键(Candidate Key):不含有多余属性的超键称为候选键。也就是说在候选键中在删除属性,就不是键了。blog
主键(Primary Key):用户选做元组标识的候选键为主键。通常不佳说明,键就是主键。class
外键(Froeign Key):若是模式R中的属性k是其余模式的主键,那么k在模式R中称为外键。date
课本上的定义过于笼统,下面我用一张学生成绩信息表给你们详细的说一下:im
学生成绩信息表中有(学号、姓名、性别、年龄、系别、专业等)集合
超键:di
学生表中含有学号或者身份证号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(学号,性别)等,咱们假设学生的姓名惟一,没有重名的现象。co
学号惟一,因此是一个超键
姓名惟一,因此是一个超键
(姓名,性别)惟一,因此是一个超键
(姓名,年龄)惟一,因此是一个超键
(姓名,性别,年龄)惟一,因此是一个超键生成
候选键:
学号惟一,并且没有多余属性,因此是一个候选键
姓名惟一,并且没有多余属性,因此是一个候选键
(姓名,性别)惟一,可是单独姓名一个属性就能肯定这我的是谁,因此性别这个属性就是多余属性,因此(姓名,性别)不是候选键
(姓名,年龄),(姓名,性别,年龄)同上,也不是候选键
主键:
主键就是候选键里面的一个,是人为规定的,例如学生表中,咱们一般会让“学号”作主键,学号能惟一标识这一个元组。
外键:
外键就很简单了,假如咱们还有一个教师表,每一个教师都有本身的编号,假设老师编号在老师这个层次中是主键,在学生表中它就是外键。