数据库设计中各种键的含义
2019-07-16
关键字:数据库设计、表设计、主键、联合主键、候选键、自然键
在数据库中“键”是一个很重要的概念。基本上只要我们谈论某张表,就一定离不开讨论它的各种键。而键的种类也不少,如果对各种键的概念分不清,在和他人讨论时可能就会不太和谐。因此,这篇文章主要记载一下各种键的名称及概念。
常见的键有以下几种
1、主键
2、候选键
3、可选键
4、复合键
5、单键
6、代理键
7、自然键
8、外键
下面我们逐一了解一下这些键的概念。
在学习各种键之前,有必要稍微解释一下什么是“键”。
我们都知道数据表都是二维矩阵式结构的。每一行数据代表一条记录,每一条记录又由多种属性/字段组成。而我们所说的“键”就与这些属性/字段有关。
1、主键
我们都知道,数据表中的每一行就代表一条记录,那这么条记录,我们要如何来分辨每一条记录是什么呢?就比如,全中国那么多人,我们要怎么来区分哪个是哪个呢?
解决的办法就是给每一条记录都设定一个“唯一编号”。就像每一个中国公民都拥有一个全中国独一无二的身份证号码一样。我们通过身份证号码就能够唯一确定一个人,而我们通过表记录中的“唯一编号”也能唯一确定某一条记录。
所以,主键就是在一张数据表中能够唯一确定一条记录的属性/字段。
数据表的主键通常都含有如下特性:
1、唯一性
2、强制性
3、永久性
4、最小集合
2、候选键
一张表中通常都会含有多个属性/字段。能够用来唯一确定一条记录的属性/字段就是候选键。所以候选键的数量可以为一个或多个。
举个例子,假如我们有一份学生信息表。它包含这几个字段:学号、姓名、性别、家庭住址、班级、成绩。那明显,我们可以通过学号来唯一确定某个学生,因此这个学号字段就是一个候选键。同样,我们也可以通过姓名+性别+家庭住址+班级来唯一确定某个学生,因此这几个字段组合也被称为候选键。
换句话说,候选键就是具备成为主键的资格,但是目前还不是主键的属性/字段。
3、可选键
候选键中没有被选为主键的属性/字段就被称为可选键。
4、复合键
通过前面我们知道了,主键的数量可以为 1~n 个。如果主键是由多个属性/字段确定的,那么就称这种主键为复合键。全称即是复合型主键。
5、单键
与上一条相对应。如果主键仅由 1 个属性/字段确定,那么就称这种主键为单键。
6、代理键
代理键通常是用来形容主键的。
如果某张数据表的主键是由系统自动生成的,例如我们常见的 _id 字段,它的元素值通常是一个自增的整型数值。这种主键就称为是代理键,全称为代理型主键。
代理键都是单键。
7、自然键
自然键通常是用来形容主键的。
如果某张数据表的主键即是业务相关的属性/字段,例如使用学生信息表中的学号作为主键的情况我们就称这种主键为自然键,全称为自然型主键。
自然键可以为单键也可以为复合键。
8、外键
外键是指某张数据表中的某个或某部分属性/字段是另外一张表中的主键。
设置外键的目的通常是为了约束当前表。因为你每次要操作当前表,它都会去查询一下拥有这个外键作为主键的表中的数据,如果数据不对,则无法操作。