求关系模式中的候选键(软考,数据库)

      求关系模式中的候选键,是软考中的考点,但视频中没有讲,所以值得一提。


      求闭包

      给定关系模式R(U,F),U={A,B,C,D,E},F={B->A, D->A, A->E,AC->B},其属性AD的闭包为______.           解:设X(0)=AD,计算X(1):逐一扫描F集中的各个函数依赖,找左部是A、D、AD的函数依赖,得到A E。于是X(1)=X(0)∪EA=ADE。由于X(0)!=X(1),所以继续扫描,于是X(2)=X(1)∪EA=ADE。由于X(2)=X(1),所以算法到此为止,属性AD的闭包为X(2),即ADE。


       求候选键

       关系模式R(U,F),其中U={W,X,Y,Z},F={WX→Y,W→X,X→Z,Y→W}。关系模式R的候选建是__

       解法:从函数依赖集出发,把所有属性分为3类
       1、L类:全部出现在函数依赖的左半部
       2、R:全部出现在函数依赖的右半部
       3、LR:出现在函数依赖的左右两边


       可能成为候选键的有L类,LR类
       对于L类,求出它的闭包,若包含所有属性,则说明其为候选键。
       对于LR类,求出其闭包,若包含所有属性,则为候选键;若不包含,再和LR类中的其他属性组合。
       对于N类,直接加至候选键即可。

       对于这道题
           L:无
           R:z
           LR:w,x,y
           先排除z
           在LR中,w的闭包为{w,y,z,x}
                           x的闭包为{x,z}
                           y的闭包为{w,y,z,x}

         所以,w和y为候选键。


你可能感兴趣的:(c,数据库,算法)