当前位置:   article > 正文

关系模式的候选关键字以及无损连接的保持依赖分解

候选关键字

话不多说,举例说明一切:

关系模式R(U,F),其中U={A,B,C,D,E},F={A→B,DE→B,CB→E,E→A,B→D}

1、求候选关键字:

只出现在左边的L属性集合:C

只出现在右边的R属性集合:无

左右两边都未出现的N属性集合:无

左右两边都出现过的LR属性集合:A,B,D,E

判断顺序,首先判断N有没有,若有,则N的成员一定为候选关键字之一;例题中没有,跳过;

然后R中有没有,若有,则R中成员一定不是候选关键字之一,直接排除掉;例题中没有,跳过;

然后是L中,L的属性成员一定属于候选关键字属性;

接下来求L的属性闭包,若闭包=U,则不需要做其他操作,该属性一定是唯一候选关键字;

例题中L的属性只有C,C就是候选关键字之一,C的闭包可以看出,无法推出任何其他元素,则C不是唯一的候选关键字,需要继续进行下面的步骤;

第三,用L中属性与LR属性一一拼接,分别求闭包,结果等于R的即为候选关键字;注意,此步骤算出来的候选关键字可能是多个;例题中,分别拼接得到的是AC,BC,CD,CE四个,分别求闭包:

AC的闭包为:首先有A和C,然后A→B,则有B;B→D,则有D;因为有了B,则可以BC→E,则有E,至此ABCDE都推出来了,等于了U中所有属性,固AC是一个候选关键字;

BC的闭包为:首先有B和C,然后B→D,则有D;BC→E,则有E;E→A,则有A;固BC也是一个候选关键字;

CD的闭包为:首先有C和D,然后就没有然后了;因为单独的C和单独的D、以及CD的组合不能在F的关系依赖中推导出任何其他的属性,固CD的闭包就是C,D;CD不是一个候选关键字;

CE的闭包为:首先有C和E,E→A,则有A;A→B,则有B;B→D,则有D;固CE也是一个候选关键字。

PS:注意,如果L属性中有两个属性,要算一下这两个属性合集的闭包是不是满足唯一候选关键字的需求。如果是,则不需要再计算其他步骤。

综上,总结关于计算候选关键字的理论知识:

一:对于给定的关系模式R及其函数依赖集F,若X(X属于R)是L类属性,则X必为R的任一候选关键字的成员。-

二:对于给定的关系模式R及其函数依赖集F,若X(X属于R)是L类属性,且X+包含了R的全部属性,则X必为R的唯一候选关键字。

三:对于给定的关系模式R及其函数依赖集F,若X(X属于R)是R类属性,则X不在任何候选关键字中。

四:对于给定的关系模式R及其函数依赖集F,若X(X属于R)是N类属性,则X必为R的任一候选关键字的成员。

五:对于给定的关系模式R及其函数依赖集F,若X(X属于R)是N类和L类组成的属性集,且X+包含了R的全部属性,则X必为R的唯一候选关键字。
 

---------------------------------------此为分割线---------------------------------------------------------------------------

那么,我们计算出了候选关键字之后,并不足够,很多时候还需要我们计算关系的无损连接的分解,并保持函数依赖:

首先,记住:无损连接的分解结果不唯一!取决于你先分解哪一个关系式!

第二,如果是个选择题,那么,选项中,分解后的关系模型中如果有候选关键字的选项,直接可以排除。比如,有个选项是ρ={ R1(AC),R2(E),R3(DB)},这个里面有AC关系是候选关键字,则这个选项不可能是无损链接,直接排除。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/788329
推荐阅读
相关标签
  

闽ICP备14008679号