1、第六章关系数据理论 (我们数据库老师给的资料,蛮有用的,分享下)一、求最小依赖集 例:设有依赖集:F={AB—C, C—A, BC一D, ACD—B, D->EG, BE—C, CG—BD, CE— AG},计算与其等价的最小依赖集。 解: 1、将依赖右边属性单一化,结果为: F1={AB—C, C—A, BC—D, ACD—B, D—E, D—G, BE—C, CG—B, CG—D, CE—A, CE->G) 2、在Fl中去掉依赖左部多余的属性。对于CE-A,由于C-A成立,故E是多余的;对于ACD 一B,由于(CD) +=ABCEDG,故A是多余的。删除依赖左部多余的依赖后:
2、 F2={AB—C, C—A, BC一D, CD—B, D->E, D—G, BE—C, CG—B, CG->D, CE->G) 3、在F2中去掉多余的依赖。对于CG-B,由于(CG) JABCEDG,故CG-B是多余的。删 除依赖左部多余的依赖后: F3={AB—C, C—A, BC一D, CD一B, D—E, D—G, BE—C, CJD, CE—G } CG-B与CD->B不能同时存在,但去掉任何一个都可以,说明最小依赖集不唯一。 二、求闭包 例:关系模式 R (U, F),其中 U={A, B, C, D, E, I}, F={A-D, AB->E, BI-E, CD-I,
3、E-C},计算(AE) \ 解:令乂={陋}, X (0) =AE; 计算X (1);逐一扫描F集合中各个函数依赖,在F中找出左边是AE子集的函数依赖,其结果是:A-D, E-C。于是X (1) =AEUDC=ACDE; 因为X (0)工X (1),且X (1) RU,所以在F中找出左边是ACDE子集的函数依赖,其结果是:CD-I。于是X⑵=ACDEUI=ACDEIO 虽然X (2) KX (1),但在F中未用过的函数依赖的左边属性已没有X (2)的子集,所以不必再计算下去,即(AE) +=ACDEIo三、求候选键 例1:关系模式R (U, F),其中U={A, B, C, D),
4、F={A-B, C一D},试求此关系的候选键。 解:首先求属性的闭包: (A) +=AB,(B) +=B,(C) +=CD,(D) +=D(AB) +=AB, (AC) +=ABCD=U, (AD) +=ABD, (BC) +=BCD, (BD) +=BD, (CD) +=CD (ABD) +=ABD, (BCD) +=BCD, 因(AC) +=ABCD=U,且(A) +=AB, (C) + =CD,由闭包的定义,AC一A, AC—B, AC 一B, AC一D,由合并规则得AC-ABCD=U; 由候选码的定义可得AC为候选码。 后选关键字的求解理论和算法对于给定的关系R (Al, A
5、2,…,An)和函数依赖集F,可将其属性分为四类: L类:仅出现在F的函数依赖左部的属性;R类:仅出现在F的函数依赖右部的属性;N类:在F的函数依赖左右两边均未出现的属性;LR类:在F的函数依赖左右两边均出现的属性。 定理1对于给定的关系模式R及其函数依赖集F,若X (X属于R)是L类属性,则X必为R的任一候选关键字的成员。 例1:关系模式R (U, F),其中U={A, B, C, D}, F={A-B, C-D},试求此关系的候选键。 例2设有关系模式R(A, B, C, D),其函数依赖集F={D-B, B-D, AD-B, AC-D},求R的 所有候选键。 推论 对于给定的关
6、系模式R及其函数依赖集F,若X (X属于R)是L类属性,且X+包含了 R的全部属性,则X必为R的惟一候选关键字。 定理2对于给定的关系模式R及其函数依赖集F,若X (X属于R)是R类属性,则 X不在任何候选关键字中。 例 3 关系模式 R (U, F),其中 U={A, B, C, D, E, P}, F={A—B, C-D, E-A , CE-D}, 试求此关系的候选键。 定理3对于给定的关系模式R及其函数依赖集F,若X (X属于R)是N类属性,则 X必为R的任一候选关键字的成员。 例 4 设有关系模式 R(A, B, C, D, E, P),其函数依赖集 F={A-D, E-D,
7、D->B, BC->D, DC -A},求R的所有候选关键字。 推论对于给定的关系模式R及其函数依赖集F,若X (X属于R)是N类和L类组成 的属性集,且X+包含了 R的全部属性,则X必为R的惟一候选关键字 四、关系模式规范化程度的判断(在BCNF内判断) 例5关系模式R (U, F),其中U={A, B, C, D),函数依赖集F={B->D, AB->C},试求 R最高属于第几范式。 解:根据判定定理及推论得:AB必是候选码的成员,且(AB) +=ABCD=U,所以 AB为候选码。则AB-D,又因B-D,存在非主属性对码的部分依赖,所以最高为1NF。 例6关系模式R (U,
8、F),其中U={A, B, C, D, E),函数依赖集F={AB—CE, E-AB, C-D},试求R最高属于第几范式。 解:根据判定定理及推论得:属性D肯定不在候选码中,通过计算可得: (AB) +=ABCDE=U,且(E) +=ABCDE=U,所以 AB、E 为候选码;由于F中不存在部分依赖,故R至少属于2NF;因AB-C, AB-E, C-D,存在非主属性对码的传递依赖,所以最高为2NF。 例7关系模式R (U, F),其中U={A, B, C),函数依赖集F={A-B, B-A, A-C},试 求R最高属于第几范式。 解:根据判定定理及推论得:属性C肯定不在候选码中,通过计
9、算可得: (A) +=ABC=U,且(B) +=ABC=U,所以 A、B 为候选码;由于候选码仅有一个属性,不存在部分依赖,故R至少属于2NF;B-A, A-C,由于A-B,所以不存在非主属性对码的传递依赖,所以R也是3NF。 又因为F满足BCNF的定义,故R也是BCNFp例8关系模式R (U, F),其中U={A, B, C),函数依赖集F={A-B, B->A, C-A},试 求R最高属于第几范式。 解:根据判定定理及推论得:属性C肯定在候选码中,又因(C) +=ABC=U,所以C为候选码;由于候选码仅有一个属性,不存在部分依赖,故R至少属于2NF;C-A, A-B,存在非主属性对码
10、的传递依赖,所以R最高为2NF。 例9关系模式R (U, F),其中U={A, B, C, D),函数依赖集F={A-C, D-B},试求R 最高属于第几范式。 解:根据判定定理及推论得:属性AD肯定在候选码中,又因(AD) +=ABCD=U,所以AD为候选码;而AD-B, D-B,存在非主属性对码的部分依赖,所以R最高为1NF。 例10关系模式R (U, F),其中U={A, B, C, D},函数依赖集F={A-C, CD-B},试求 R最高属于第几范式。 解:根据判定定理及推论得:属性AD肯定在候选码中,又因(AD) +=ABCD=U,所以AD为候选码;而AD-C, A-C,存在非主属性对码的部分依赖,所以R最高为1NF。 如有侵权请联系告知删除,感谢你们的配合!






