分解成3NF模式集的合成算法和分解成BCNF模式集的算法

本文介绍了如何将关系模式分解成3NF和BCNF模式集的算法。首先通过求解最小依赖集和合并性合并FD来形成3NF模式集,确保无损分解和保持依赖。接着详细阐述了分解成BCNF模式集的步骤,通过不断分解不满足BCNF的函数依赖,直至所有模式都满足BCNF条件,确保无损连接性。
摘要由CSDN通过智能技术生成

算法:  无损分解且保持依赖地分解成3NF模式集

  1. 对于关系模式R和R上成立的FD集F,先求出F的最小依赖集,然后再把最小依赖集中那些左部相同的FD用合并性合并起来。
  2. 对最小依赖集中,每个FD X→Y去构成一个模式XY。
  3. 在构成的模式集中,如果每个模式都不包含R的候选键,那么把候选键作为一个模式放入模式集中。

    这样得到的模式集是关系模式R的一个分解,并且这个分解既是无损分解,又能保持FD。

 

例:设关系R(ABCDE),R的最小依赖集为{A → B,C → D}。从依赖集可知R的候选健为ACE。

解:  先根据最小依赖集,可知ρ ={AB,CD}。然后再加入由候选健组成的模式ACE。

        因此最后结果ρ ={AB,CD,ACE}是一个3NF模式集,且R相对于该依赖集是无损分解且保持函数依赖。

 

 

 

算法 :  无损分解成BCNF模式集     

       对于关系模式R的分解ρ(初始时ρ={R}),如果ρ中有一个关系模式Ri相对于πRi(F)不是BCNF。据前面的定义可知,Ri中存在一个非平凡FD X→Y,有X不包含超键。    

       此时把Ri分解成XY和Ri-Y两个模

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值