1•说白话一点:闭包就是由一个属性直接或间接推导出的所有属性的集合
例(1):设有关系模式 R(U,F),其中 U={A,B,C,D,E,I},F={A—D,AB-E,BI-E,CD-I,E-C},计算(AE)+解:(1)令 X={AE},X(0)=AE(2)在 F 中寻找尚未使用过的左边是 AE 的子集的函数依赖,结果是:A-D,E-C;所以X(1)=X(0)DC=ACDE,显然 X(1)X(0)(3)在 F 中寻找尚未使用过的左边是 ACDE 的子集的函数依赖,结果是:CD-I;所以X(2)=X(1)I=ACDEI
虽然 X(2)X(1)但 F 中寻找尚未使用过函数依赖的左边已经没有 X(2)的子集,所以不必再计算下去,即(AE)+=ACDEI
例如:f={a->b,b->c,a->d,e->f};由 a 可直接得到 b 和 d,间接得到 c,则 a 的闭包就是{a,b,c,d}2•候选码的求解理论和算法对于给定的关系 R(A1,A2,A)和函数依赖集 F,可将其属性分为 4 类:L 类仅出现在函数依赖左部的属性
R 类仅出现在函数依赖右部的属性
N 类在函数依赖左右两边均未出现的属性
LR 类在函数依赖左右两边均出现的属性
定理:对于给定的关系模式 R 及其函数依赖集 F,若 X(XWR)是 L 类属性,则 X 必为 R 的任一候选码的成员
推论:对于给定的关系模式 R 及其函数依赖集 F,若 X(XeR)是 L 类属性,且 X+包含了 R 的全部属性;则 X 必为 R 的唯一候选码
例(2):设有关系模式 R(A,B,C,D),其函数依赖集 F={D-B,B-D,AD-B,AC-D},求 R 的所有候选码
解:考察 F 发现,A,C 两属性是 L 类属性,所以 AC 必是 R 的候选码成员,又因为(AC)+=ABCD,所以 AC 是 R 的唯一候选码
定理:对于给定