定义
由一个或者多个属性构成,目的是为了检索和实体之间的关系,使用键可以从一个实体导航到另外一个实体。
键的类别
候选键
候选键是一个或多个可以唯一标识实体实例的属性。实体和候选键的关系:一个实体可以有多个候选键。多个属性构成一个候选键的时候,该候选键也可以称为复合候选键。
四大特征:
- 唯一性;
- 不为空;
- 不可更改;
- 最小化:如果能用1个属性确定候选键,就不要使用2个属性
主键
从多个候选键中选出的一个,作为主键。所以主键也是候选键。其作用是唯一索引(Unique Index),注意唯一索引和索引的区别。
挑选主键的原则有两个:
- 简洁性:选择最短或者最少的候选键;
- 隐私性:不包含隐私信息的候选键,因为主键可能被当作外键被传递出去;
备用键
候选键中没有被选作主键的,剩余的候选键;
候选键、主键和备用键的关系
候选键是大集合,主键是其中的一个子集,而且元素固定,备用键也是候选键的子集。特殊情况下,如果只有一个候选键时,该候选键也就是主键,那么不存在备用键了。
代理键
代理键通常是一个固定大小,无人工干预,系统自动生成的,如ID,时间等,所谓的代理就是主要是指代替主键的功能使用。
其特性主要有:
- 唯一标识符;
- 高效性;
- 可用于检索;
- 无业务意义 ;一般的代理键都是系统自动添加的,所以和业务无关。
- 可用作主键;因为代理键可以作为唯一标识符,当其值不为空的时候,而实体中又没有候选键的情况下,或者候选键的不适合做主键的情形时,可以考虑使用代理键作为主键。
其作用主要用来实现应用程序的集成,提高数据库的效率等。
外键
外键是父实体和子实体建立关系的桥梁。外键在父实体中是父实体的主键,在子实体中是外键。
一对多和多对一的确定方法——双向思考法:1.一个学生实例是否存在多个出勤实例,是,则学生表对应出勤表是一对多;2.一个出勤实例能否对应多个学生实例,否,则出勤表对应学生表不是一对多;
辅助键
辅助键是创建索引使用的,如Elasticsearch会为每一个属性创建索引。其特点是不要求唯一性,不要求固定、稳定性,不要求必须有值。