作业帮 > 数学 > 作业

设关系模式R(ABCDE),F是R上成立的FD集,F={AB→C,C→A,C→D,B→E}

来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/09/20 21:40:12
设关系模式R(ABCDE),F是R上成立的FD集,F={AB→C,C→A,C→D,B→E}
求,1:关系模式R中的全部候选键.2:将其分解为满足函数依赖和无损的3NF模式集.
设关系模式R(ABCDE),F是R上成立的FD集,F={AB→C,C→A,C→D,B→E}
我把算法给你贴上,毕竟以鱼授之不如授之以渔.
候选码的求解理论和算法
首先对于给定的R(U)和函数依赖集F,可以将它的属性划分为4类:
L类,仅出现在F的函数依赖左部的属性.
R类,仅出现在F的函数依赖右部的属性.
N类,在F的函数依赖左部和右部均未出现的属性.
LR类,在F的函数依赖左部和右部两部均出现的属性.
根据以下定理和推论来求解候选码.
定理1:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必为R的任一候选码的成员.
推论1:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,且X+包含了R的全部属性,则X必为R的唯一候选码.
定理2:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是R类属性,则X不在任何候选码中.
定理3:设有关系模式R及其函数依赖集F,如果X是R的N类属性,则X必包含在R的任一候选码中.
步骤:
(1)将R的所有属性分为L、R、N、LR四类,令X代表L、N两类,Y代表LR类.
(2)求 X+(X的闭包)若X+包含了R的全部属性,则X即为R的惟一候选码,转(5);否则转(3)在Y中逐一取每个属性A,求(XA)+.若它包含了R的全部属性,则转(5);否则调换一属性反复进行这一过程,直到试完所有Y中的属性.
(4)在Y中依次取两个、三个属性…求它们的属性闭包直到其闭包包含R的全部属性.
(5)输出结果.
1、给出解题的过程:
a.L:B ; R:D,E ; LR:A,C ;没有N类属性
b.D和E不包含在任何候选码中,只剩下A,B和C,而B属于L类,故必定包含在任意候选码中.将A,B和C组合:AB,BC和ABC
c.求闭包
AB的闭包:ABCDE
BC的闭包:ABCDE
不用再计算{ABC}的闭包了,因为存在两个元素的候选键的闭包包含全部属性
d.输出候选码为AB,BC
2、求F的最小覆盖为:F1={AB->C,C->A,C->D,B->E}则无损且保持函数依赖的分解为:
R1(A,B,C) R2(C,A,D) R3(B,E)
或者分解R1(A,B,C) R2(C,D) R3(B,E)也是正确的.