模式分解

例1:U=(A,B,C,D,E,G)   F={BG->C,BD->E,DG->C,ADG->BC,AG->B,B->D}   若R不是3NF,将R分解为无损且保持函数依赖的3NF。

解:

先要求出最小依赖集,由前面,候选键为AG,Fm={B->E,DG->C,AG->B,B->D}

第一步:左部相同原则分组:对Fm按具有相同左部的原则分组,然后左部∪右部

U1=B∪DE=BDE      U2=DGC     U3=AGB

第二步:看有没有包含关系,有的话,合并吸收

将R分解为ρ={ R1({B,D,E},{B->E,B->D}),

                       R2({C,D,G},{DG->C}),

                       R3({A,B,G},{AG->B}) }

第三步:看分的属性组里有没有包含码,包含了,就是无损且保持函数依赖的3NF,没有包含,就不是无损且保持函数依赖的3NF,就加一个分组,把码加进去。

因为候选键AG在U3中,所以所求分解ρ具有无损连接性,并保持函数依赖,且每个子模式为3NF。


例2:U=(A,B,C,D,E)   F={AB->C,C->B,D->E,D->C}   若R不是3NF,将R分解为无损且保持函数依赖的3NF。

解:

求得,码是AD     属于1NF

第一步:U1=ABC       U2=BC     U3=DCE

第二步:

将R分解为ρ={ R1({A,B,C},{AB->C}),

                       R2({B,C},{C->B}),

                       R3({D,E},{D->E,D->C}) }

合并吸收

ρ={ R1({A,B,C},{AB->C,C->B}),

       R2({D,E},{D->E,D->C}) }

第三步:不是无损连接,添加码

R3({A,D},{∅})

所以ρ={ R1({A,B,C},{AB->C,C->B}),

              R2({D,E},{D->E,D->C}),

              R3({A,D},{∅}) }

版权声明:本文为博主原创文章,未经博主允许不得转载

  • 52
    点赞
  • 167
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 29
    评论
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wonz

创作不易,一块就行。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值