一、候选码
参考链接:1
1.定义:
候选码(超级码)就是可以被选为主码的属性或属性组。当一个关系有N个属性或属性组可以唯一标识时,则说明该关系有N个候选码,可以选定其中一个作为主码。
候选码定义: 设K为关系模式R<U, F>的属性(组),若K→FU,则称K为R的 候选码。
主码:若R<U , F>有多个候选码,则可以从中选定一个作为R的主码。
主属性:包含在任一个候选码中的属性,称作主属性。
非主属性:不包含在任一个候选码中的属性,称作非主属性(或非码属性)。
全码:关系模式的码由全部属性构成。
例:
求出关系模式R<U, F>的所有候选码:
U={ A , B , C , D , E }
F={AB→C, B→D, C→E, EC→B, AC→B }
解: 验证AB是否码, 须证明 AB→FABCDE是否成立?
∵AB→C(已知), 而AB→AB(自反), ∴AB → ABC(合并)
∵B→D(已知), ∴AB→AD(增广), ∴AB → ABCD(合并)
∵C→E(已知), AB→C(已知), ∴AB → E(传递)
于是 AB → ABCDE(合并)
同理可证:AC也是一个候选码
2.方法:
讲解视频;候选码
设关系模式R<U, F>
将R的所有属性分为 L、 R、N和 LR四类,并令X代表L、N两类,Y代表LR类。
L类: 仅出现在F的函数依赖左部的属性;
R类: 仅出现在F的函数依赖右部的属性;
N类: 在F的函数依赖左右两边都不出现的属性;
LR类:在F的函数依赖左右两边都出现的属性 。
求属性集闭包X+,若 X+包含了R的