一、理解候选键、主键及备用键
键由一个或多个属性构成,其目的在于实施规则,有效数据检索,而且允许从一个实体导航到另一个实体。
候选键是一个或多个可以唯一标识实体实例的属性。
候选键具备以下4个基本特征:
1)唯一性:候选键必须不能标识多于一个实体实例(或现实世界中的事物)。
2)强制性:候选键不能为空,每个实体实例要求必须能被一个特定的候选键值标识,候选键取不同值的数目,始终与不同的实体实例数目一致。如果实体图书选择ISBN作为其候选键,那么当存在500个图书实例时,必然存在500个不同的ISBN与其对应。
3)非异变性:实体实例的候选键值应该不会被更改。
4)最小化:候选键中仅仅包含那些用于唯一标识实体实例的属性,假设列出由4个属性组合成的一个候选键,但其中仅仅只有3个是标识实体实例所必需的,那么只能用这3个属性构成候选键。
主键是在众多候选键中首选出来唯一标识实体的选项。选择主键应该考虑下面两点:
1)简洁性。指如果存在多个候选键时,通常选择属性数最少或最短的充当主键。
2)隐私性。指候选键中如果含有一些敏感数据时,这个候选键不适合充当主键。
二、理解代理键
代理键是数据表的唯一标识符,它通常由一个固定大小的、无人工干预的、系统自动产生的计数器生成,代理键不具备任何业务含义(换言之你不能将月份标识“1”当作“月份”实体实例中的一月)。对于具体的业务而言,代理键是不可见的,但应该允许它在幕后存在,以便更有效地实现跨结构数据导航和跨应用程序的集成。
【备注说明】代理键在数据库中一般指的数据库中的记录的ID号。
三、理解外键
外键是可以与其他实体产生关联的一个或多个属性(或者在递归关系中,连接同一个实体的情况下,有可能存在来自同一个实体的两个实例相互关联)。
在物理层,使用外键可以从数据库管理系统中的一张表导航至另外一张。
四、理解辅助键
辅助键是经常被访问的,或者需要被快速检索到的一个或多个属性(如果多于一个属性,则称之为复合辅助键)。辅助键又被称为非唯一性索引或倒排入口(inversion entry,E)。辅助键无需是唯一的、稳定的,而且也不要求必须拥有值。例如,我们可以在学生实体中为“学生姓氏”添加辅助键,于是可以对任何检索学生姓氏的请求给予快速响应。