判断无损分解的例子

这个就考前看了一本课外的辅导教材,现学了一下方法,不知道能不能回忆起来。

题目:U=(A,B,C,D,E)    F={A->D,E->D,D->B,BC->D,DC->A}

判断ρ={AB,AE,CE,BCD,AC}是否为无损连接分解。

解:

先求出候选键为CE。

然后画一个初始判定表如下图所示。

 ABCDE
ABa1a2b13b14b15
AEa1b22b23b24a5
CEb31b32a3b34a5
BCDb41a2a3a4b45
ACa1b52a3b54b55

解释一下这张初始判定表的含义:

直接看ρ,比如第一个是AB,那么就在A列写a1,在B列写a2,其余都写b1j。

然后开始计算。这时候要看F中的函数依赖。

比如,第一个是A->D,看A列有没有ai,看到有a1,再看D列中对应的,如果不相同,也有aj的话,就把其他换成aj,如果没有,就以第一个ai对应的bij为基准,其他都换成bij。

所以判定表应换成:

 ABCDE
ABa1a2b13b14b15
AEa1b22b23b14a5
CEb31b32a3b34a5
BCDb41a2a3a4b45
ACa1b52a3b14b55

接下来看E->D:

以前面修改后的表为基准。

 ABCDE
ABa1a2b13b14b15
AEa1b22b23b14a5
CEb31b32a3b14a5
BCDb41a2a3a4b45
ACa1b52a3b14b55

D->B:

这里看D列,因为b14对应B列有a2,所以就不以D列中a4为基准,而是以b14为基准,改B列对应位置为a2。

 ABCDE
ABa1a2b13b14b15
AEa1a2b23b14a5
CEb31a2a3b14a5
BCDb41a2a3a4b45
ACa1a2a3b14b55

BC->D:

当左边出现两个元素时,看B列和C列相同的行,发现是a2、a3,然后修改D列对应位置为a4。

 ABCDE
ABa1a2b13b14b15
AEa1a2b23b14a5
CEb31a2a3a4a5
BCDb41a2a3a4b45
ACa1a2a3a4b55

DC->A:

D列和C列有相同的行,是a3、a4,然后修改A列对应位置为a1。

 ABCDE
ABa1a2b13b14b15
AEa1a2b23b14a5
CEa1a2a3a4a5
BCDa1a2a3a4b45
ACa1a2a3a4b55

最终表:

 ABCDE
ABa1a2b13b14b15
AEa1a2b23b14a5
CEa1a2a3a4a5
BCDa1a2a3a4b45
ACa1a2a3a4b55

再看表中全部为a的行,发现是第三行,所以ρ为无损连接分解。

教材上的例题图片:



  • 32
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值