如果存在大量的数据,如何筛选出想要查找的所有数据?那么就需要引入键的概念。下面解释候选键,主键,备用键,代理键,外键的概念。
选说候选键,是一个或者能唯一标识多个实体实例的属性,例如在定义学生,一般有,学号,名字,姓氏,生日等等。明显一个学号就可以唯一标识出一个学生,但是名字和姓氏和生日组合在一起就能标识出一个学生。上述的两种组合都是候选键
接下来说明候选键具有四大属性,唯一性:能标识出唯一的实体实例。
强制性:候选键必须要对应一个实体实例。
稳定性:一旦确定了候选键,就不能再次更改。
最小性:在保证确定唯一性的情况下,组合中属性个数的下确界。
主键先是候选键,其次主键应该具有简洁性:属性个数相对少。
隐私性:因为主键可能会作为外键被传递,这样敏感数据可能完全暴露在数据库中。(优先于简洁性)
所以上诉实例中应该选第一种组合。 那么剩下的组合就称为备选键。
代理键:是数据表的唯一标识符,
外键:在一对多关系中,“一”的一端称为父实体,“多”的一端称为子实体。当从父实体向子实体创建一个关系时,父的主键应该被拷贝到子实体作为外键。
辅助键:为了实现快速的数据检索而存在。无需唯一性,稳定性,且可以空。例如可以在学生实体中将“学生姓氏”添加辅助键,就可以对任何检索学生姓氏的请求给与快速响应。