范式求解流程

流程

①首先先求候选键(候选键中的属性都为主属性,不在候选键中的属性都为非主属性,主键是候选键中挑一个),候选键的简易求法:在依赖集中右边的属性全部删除,然后从依赖集第一项开始,一个个加入左边的属性,假如可以全部推出,那么它就是一个候选键
②判断非主属性是否部分依赖(部份依赖即是有AB->C,B->C且AB为候选键;那么C就是部分依赖于候选键)于候选键,是的话不是2NF,否的话就是指完全依赖于候选键,最低是2NF
③判断非主属性是否传递依赖(传递依赖即是有A->B,B->C且A为候选键;那么C就是传递依赖于候选键)于候选键,是的话不是3NF,否的话最低是3NF
④判断主属性是否部分/传递依赖于候选键,是的话不是BCNF,否的话最低是BCNF,判断BCNF的简易方法:看依赖集F中所有左边项是否为候选键,是的话是BCNF,反之亦然


例题
已知R={A,B,C,D},F={B->D,D->B,AB->C},求它是1NF还是2NF还是3NF还是BCNF?
答:
1.先求候选键
F中右侧的为D,B,C,那么在R中先删除这三个属性,剩下A。因为A无法直接推出其他所有属性,所以
①从F的第一项开始,加入B,现在为{A,B};由{A,B}可以推出D,{A,B,D}可以推出C,由{A,B}可以推出所有属性,所以{A,B}为候选键;

②从F的第二项开始,加入D,现在为{A,D};由{A,D}可以推出B,{A,D,B}可以推出C,由{A,D}可以推出所有属性,所以{A,D}为候选键;

因此,候选键为{A,B},{A,D};主属性为A,B,D;非主属性为C;

2.判断非主属性是否部份依赖于候选键
由于F中AB->C可知,C是完全依赖于候选键{A,B}的,所以不存在部份依赖,因此至少是2NF

3.判断非主属性是否传递依赖于候选键
由2中可知,C完全依赖于候选键{A,B},所以不存在传递依赖,因此至少是3NF

4.判断主属性是否部分/传递依赖于候选键
依赖集F的左边项分别为B,D,AB。因为B和D不是候选键,只有AB是候选键,所以不是BCNF

因此,本题为3NF。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值