文章目录
- 1.1
- 2.1
- 2.2
- 2.3
- 2.4
1.1
列出下图所示关系满足的所有非平凡的函数依赖(忽略蕴含的函数依赖)。
A B C
− − − − − − − − − − − − ------------ −−−−−−−−−−−−
a1 b1 c1
a1 b1 c2
a2 b1 c1
a2 b1 c3
非平凡的函数依赖有:A→B和C→B
2.1
假设有关系模式R(A,B,C,D,E),其函数依赖集F={A→BC,CD→E,B→D,E→A}
列出R的所有候选码。
因A→BC,则A→B 和A→C。
因A→B 且 B→D,则A→D;
因A→CD且CD→E,则A→E;
所以A→ABCDE,A是候选码。
因E →A,A→ABCDE,所以E → ABCDE,E是候选码。
因CD→E,E→ABCDE,所以CD → ABCDE,CD是超码。
因B→D,有BC→CD,所以BC→ABCDE,BC是超码。
因B的闭包是BD,C的闭包是C,D的闭包是D, 所以B、C、D都不是超码,BC与CD是候选码。
候选码是A, BC,CD和E。
2.2
假设有关系模式R(A,B,C,D,E),其函数依赖集F={A→BC,CD→E,B→D,E→A}
计算正则覆盖Fc。
给定FDs集合F={A→BC,CD→E,B→D,E→A},F中每个FD的左边是唯一的。同样,任何FDs的左边或右边的属性都不是无关的。因此正则覆盖Fc等于F。
2.3
假设有关系模式R(A,B,C,D,E),其函数依赖集F={A→BC,CD→E,B→D,E→A}
BC是R的候选码吗?为什么?
BC是候选码。
假设BC的闭包为X,计算X的步骤如下:
(1)X=BC;
(2)因B→D,B是X的子集,所以X=BCD;
(3)因CD→E,CD是X的子集,所以X=BCDE;
(4)因E→A,E是X的子集,所以X=ABCDE;
所以,BC是R的超码。
同样,计算B的闭包为BD,计算C的闭包为C,所以B与C都不是R的超码。
因BC的所有真子集都不是R的超码,所以BC是R的候选码。
2.4
假设有关系模式R(A,B,C,D,E),其函数依赖集F={A→BC,CD→E,B→D,E→A}
CD是R的候选码吗?为什么?
CD是候选码。
假设CD的闭包为X,计算X的步骤如下:
(1)X=CD;
(2)因CD→E,CD是X的子集,所以X=CDE;
(3)因E→A,E是X的子集,所以X=ACDE;
(4)因A→BC,A是X的子集,所以X=ABCDE;
所以,CD是R的超码。
同样,计算C的闭包为C,计算D的闭包为D,所以C与D都不是R的超码。
因CD的所有真子集都不是R的超码,所以CD是R的候选码。
ps
我用 ai 写的作业好像大部分是错的,有点无奈,准备在github 上维护一个湘大计网院资料,等我学会怎么使用 github