第六章

您所在的位置:网站首页 die的过去式和过去分词两种 第六章

第六章

2023-07-18 00:59| 来源: 网络整理| 查看: 265

1:求关系模式候选码的方法

设关系模式R中的属性集U=ABC…,有N个属性,判断U中属性在FD中出现的位置 (1)左右出现; (2)只在左部出现; (3)只在右部出现; (4)不出现;

方法:按以下几步来求候选键

1.只在FD右部出现的属性,不属于候选码; 2.只在FD左部出现的属性,一定存在于任何候选码当中; 3.两边均不出现的属性一定存在于任何候选码当中; 4.其他属性逐个与2,3的属性组合,求属性集闭包,直至X的闭包等于U,若等于U,则X为候选码。(如果2.3被证明已经是候选码,所以就不用在继续4步骤)

例: R(U)=(ABCDEG),F={AB->C,CD->E,E->A,A->G},求候选码。

解答: 1)观察猜测可能的候选码 由F观察到BD(只在左边)一定包含在候选码中,G(只在右边)肯定不是主属性,先判断BD能否构成候选码,不能的话再判断:ACE(在两边)与BD组合可能形成候选码,需要求属性集的闭包进行验证。 2)验证

设X=ABD,求(ABD)+F X(0)=X=ABD X(1)=X∪{CG}={ABDCG}≠X(0)≠ U X(2)=X(1)∪{E}={ABCDEG}=U 即,X+F = (ABD)+F ={ABCDEG}=U,因此ABD是一个候选码。 同样,来验证BDC、BDE是否候选码? 再设X=BDC,求(BDC)+F X(0)=X=BDC X(1)=X∪{E}={BDCE}≠X(0)≠ U X(2)=X(1)∪{A}={ABCDE} ≠ U X(3)=X(2)∪{GC}={ABCDEG} = U 即,X+F = (BDC)+F ={ABCDEG}=U,因此BDC也是一个候选码。 再设X=BDE,求(BDE)+F X(0)=X=BDE X(1)=X∪{A}={ABDE}≠X(0)≠ U X(2)=X(1)∪{GC}={ABCDEG}=U 即,X+F = (BDE)+F ={ABCDEG}=U,因此BDE也是一个候选码。

总结关系模式R(U,F)有三个候选码:ABD、BDC、BDE。

2:判断关系模式属于第几范式的方法

举例: R(U)=(ABCDEG),F={AB->C,CD->E,E->A,A->G}, 判断关系模式R(U,F)属于第几范式? 解答: 1)确定R(U,F)的候选码(小结1已解决)。 三个候选码:ABD、BDC、BDE。 2)属性集U分成两个集合: 码属性集,ABCDE 非码属性集,G 3)根据范式定义判断 • 1NF ↓ 消除非主属性对码的部分函数依赖 2NF ↓ 消除非主属性对码的传递函数依赖 3NF ↓ 消除主属性对码的部分和传递函数依赖 BCNF ↓ 消除非平凡且非函数依赖的多值依赖 4NF 显然,只有一个非主属性G,A->G,G部分依赖于候选码,所以, R(U,F)属于1NF。

3:如何求函数依赖集F的最小覆盖集Fm

定理6.3 每一个函数依赖集F均等价于一个极小函数依赖集Fm。此Fm称为F的最小依赖集。 证明: 构造性证明,找出F的一个最小依赖集。

方法: (1)应用分解规则,使F的每一个函数依赖的右部属性单一化。 (2)去掉各函数依赖左部多余的属性。 具体办法是: 逐个循环检查F中左边是非单属性的依赖X→Y。 设X=B1B2…Bn, 若Y∈(X-Bi)+F, 则以(X-Bi)→Y取代X→Y,直到F不再改变为止。 (3)去掉多余的函数依赖。 具体办法是: 循环检查F中各函数依赖X→Y, 令G=F-{X→Y}, 若Y∈X+G, 则从F中去掉X→Y; 否则, 不能去掉X→Y。 直到F不再改变为止。

【例】 设关系模式R(U)上的函数依赖集为F, U={A, B, C, D, E, G }; F={AB→C, BC→D, ACD→B, D→EG, C→A, BE→C, CG→BD, CE→AG}。 试计算其等价的极小函数依赖集Fm。

解: (1)应用分解规则, 使F的每一个函数依赖的右部属性单一化。 结果为:

F1={AB→C,BC→D, ACD→B, D→E, D→G,C→A,BE→C, CG→B,CG→D, CE→A, CE→G}。 F1={AB→C, BC→D, ACD→B, D→E, D→G,C→A, BE→C, CG→B, CG→D, CE→A, CE→G}

(2)去掉各函数依赖左部多余的属性。 因为CE→A, C→A, 则E是多余的; 对于ACD→B,由于(CD)+F1=ABCDEG,则A是多余的。 其它函数依赖中无左部多余的属性。 删除函数依赖左部多余的函数依赖后的结果为:

F2={AB→C,BC→D, CD→B,D→E, D→G, C→A, BE→C, CG→B, CG→D, CE→G}。

(3) 在F2中去掉多余的函数依赖。 对于CG→B, 由于去掉它之后(CG)+ =ABCDEG, 包含B,所以CG->B是多余的。 可以验证其他函数依赖都不能去掉,因此其等价的极小函数依赖集Fm的结果为:

Fm={AB→C,BC→D, CD→B, D→E, D→G, C→A, BE→C, CG→D, CE→G}。

注意:最小覆盖不唯一。 例

F={A->B,B->A,B->C,A->C,C->A} Fm1={A->B,B->C,C->A} Fm2={A->B,B->A,A->C,C->A}


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3