在关系模型中,候选键又称候选码(英语:candidate key),是某个关系变量的一组属性所组成的集合,它需要同时满足下列两个条件:
1.这个属性集合始终能够确保在关系中能唯一标识元组。
2.在这个属性集合中找不出合适的子集能够满足条件。
如果关系模式R(u)的属性集合K ∈u 的候选键。R(u)的任何一个关系实例的任意两个元素在属性集合K上的值部不相同————唯一性,K的任何真子集都不满足条件 ————最小性通俗点,候选键在每一行数据里的值都不相同,可以说成是候选的主键。
候选键是唯一标识表中每一行的键。候选键可以是单列键,也可以是复合键。例如下列学生表中“学号”或“图书证号”都能唯一标识一个元组,则“学号”和“图书证号”都能唯一地标识一个元组,则“学号”和“图书证号”都可作为学生关系的候选键。
从超键的定义来解释什么是候选键。
超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
候选键(candidate key):不含有多余属性的超键称为候选键。
主键(primary key):用户选作元组标识的一个候选键作为主键。
题目要补充完整,必须给出集合U
已知R(U,F),其中 U={A,B,C,D,E}, F={A→D,E→D,D→B,BC→D,DC→A},求候选关键字。
①取L类属性(仅出现在F的函数依赖左侧的)——E,C
②求EC关于F的闭包(即由EC可以推出哪些属性)——(EC)+ = ABCDE,包含了U的全部属性,故EC为候选关键字
注: 若U={A,B,C,D,E,P},P不在F中左侧或右侧,则P为N类属性,(ECP)+ =ABCDEP,同样包含了U的全部属性,那么候选关键字就为ECP
附:
定理一:对于给定的关系模式R(U,F),若X(X属于U)是L类属性,则X必为R的任一候选码的成员(组成部分)。
推论一:已知R(U,F),若X(X属于U)是L属性,且X+F包含了R的全部属性U,则X必为R的唯一候选码。
定理二:给定R(U,F),若X(X属于U)是R类属性,则X不在任何候选码中。
定理三:给定R(U,F),若X是R的N类属性,则X必包含在R的任一候选码中。
推论二:已知R(U,F),若X是R的N类和L类属性组成的属性集,且X+包含了R的全部属性U,则X是R的唯一候选码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)