数据库 您所在的位置:网站首页 不出现候选圈 数据库

数据库

2024-07-07 18:10| 来源: 网络整理| 查看: 265

设关系模式R,F是R的函数依赖集,求候选码: 求解步骤:

第一步:列出L、R、N、LR属性包含的元素

(在此之前可以先去求L属性的闭包,如果其包含R中所有元素,那么L属性对应的元素就是唯一候选码)

第二步:设X、Y——X代表L与N类属性,Y代表LR类属性

第三步:求X的闭包

第四步:

(1)如果X的闭包包含R的全部属性元素,X即为R的唯一候选码,结束。

(2)[若X+不全包含R的元素]

         第五步:从Y中依次取出一个元素,设该元素为A,求(XA)+,

        若取出元素和X组合求得的闭包包含关系模式中的所有属性,直到试完Y中全部的元素。

                [若Y中的元素取出与X组合均包含R全部属性,此时所有候选码被找出。]

                [若Y中还有元素与X组合求得的闭包不包含全部元素,则从这些元素中依次取出两                  个开始继续与X组合]

涉及知识点——属性分类

L类属性:关系模式中的属性,只出现在函数依赖集左边的属性

R类属性:关系模式中的属性,只出现在函数依赖集右边的属性

N类属性:关系模式中的属性,没有出现在函数依赖集里的属性

LR类属性:关系模式中的属性,出现在函数依赖集左、右两边的属性

例题1:

设有关系模式R(A, B, C),  其中:F={B→C ,AC →B }   求出R的所有候选键。

第一步——列属性:

L={A}

R={Ø}

N={Ø}

LR={BC}

L+=A+={A},不是唯一候选码

第二步——设XY:

X=(L∪N)=A

Y=LR=BC

第三步——求X+:

X+=A+={A}

第四步——从Y依次取出元素与X组合求闭包:

从Y中取出B与X组合,(AB)+={ABC},包含R中全部属性,AB为R的候选键

从Y中取出C与X组合,(AC)+={ACB},包含R中全部属性,AC为R是候选键

因为Y中B、C均和A组合为候选键,所以无需再进行下一步取两个元素BC与A组合

所以,R的候选键有AB、AC

例题2:

设有关系模式R(A,B,C,D,E),其中:F={B→CD,DE→A,C→E,A→B} 求出R的所有候选键。

第一步——列属性:

L={Ø}

R={Ø}

N={Ø}

LR={ABCDE}

第二步——设XY:

X=(L∪N)=Ø

Y=LR=ABCDE

第三步——求X+:

X+={Ø}

第四步——从Y依次取出元素与X组合求闭包:

从Y中取出A与X组合,XA+=(A)+={ABCDE},包含R中全部属性,A为R的候选键

从Y中取出B与X组合,XB+=(B)+={BCDEA},包含R中全部属性,B为R的候选键

从Y中取出C与X组合,XC+=(C)+={CE},没有包含R中全部属性,C不是R的候选键

从Y中取出D与X组合,XD+=(D)+={D},没有包含R中全部属性,D不是R的候选键

从Y中取出E与X组合,XE+=(E)+={E},没有包含R中全部属性,E不是R的候选键

这里单个元素的组合均求完闭包,只有A、B与X组合求得的闭包包含R的全部属性,所以还需要从剩下的CDE中依次取出两个和X组合求闭包:

XCD+=(CD)+={CDEAB},包含R中全部属性,CD为R的候选键

XCE+=(CE)+={CE},没有包含R中全部属性,CE不是R的候选键

XDE+=(DE)+={DEABC},包含R中全部属性,DE为R的候选键

所以,R的候选键有A、B、CD和DE



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有