无损分解的测试

来源:互联网 发布:康丽鲨牌灵软胶囊知乎 编辑:程序博客网 时间:2024/05/01 06:52

       例题:设关系模式R(ABCD),R分解成ρ={AB,BC,CD}。如果R上成立的函数依赖集是F1={B→A,C→D},那么ρ相对于F1是否无损分解?如果R上成立的函数依赖集是F2={ A→B,C→D}呢?

      第一步,构造表格:

             

      第一行为关系模式R的每一个属性A B C D,第一列为R的分解AB BC CD,如果属性在分解中,则在表格的第i行第j列填上aj,否则填上bij如第1行第1列,A在AB中,所以填上a1;如第2行第1列,A不在BC中,所以填上b21

       第二步,根据函数依赖集修改表中的值。

        F1={B→A,C→D} ,所以我们可以把B转化为A,C转化为D,此时表格变为

             

       然后再按照第一步的方法,把能改的值都改了。此时第2行第1列,A在AD中,所以填上a1;第2行第4列,D在AD中,所以填上a4。修改后的表格为:

             

      第三步,可以看到表格中存在一行全是a,即第二行,所以ρ相对于F1是无损分解。

     按照此方法大家可以自行测试F2是否为无损分解。

 

初学者,不当之处敬请批评指正!

欢迎光临我的网易博客:http://blog.163.com/liu_xiaochun/


原创粉丝点击