打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
3-4-4


3.4.4 BCNF

1.由来
在3NF模式中,并未排除主属性对候选键的传递依赖,因此有必要提出更高一级的范式BCNF(Boyce–Codd NF)。

2.主属性对候选键的传递依赖

3.BCNF的定义
  (1)如果关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。如果数据库模式中每个关系模式都是BCNF,则称为BCNF的数据库模式。
  (2)设F是关系模式R的FD集,如果对F中每个非平凡的函数依赖X→Y,都有X是R的超键,那么称R是BCNF的模式。

4.实例

   ①设关系模式R(B#,BNAME,AUTHOR)的属性分别表示书号、书名和作者名。如果规定,每个书号只有一个书名,但不同书号可以有相同书名;每本书可以有多个作者合写,但每个作者参与编著的书名应该互不相同。这样的规定可以用下列两个FD表示。
   ②B#→BNAME和(AUTHOR,BNAME)→B#。
   ③R的关键码为(BNAME,AUTHOR)或(B#,AUTHOR),因而模式R的属性都是主属性,R是3NF模式。
   ④但从上述两个FD,可知属性BNAME传递依赖于关键码(AUTHOR,BNAME),{(AUTHOR,BNAME)→B#,B#→BNAME,故(AUTHOR,BNAME)t→BNAME},因此R不是BCNF模式。譬如一本书由多个作者编写时,其书名与书号间的联系在关系中将多次出现,带来冗余和操作异常现象。
   ⑤如果把R分解成R1(B#,BNAME)和R2(B#,AUTHOR),能解决上述问题,且R1和R2都是BCNF。但有可能引起新的问题,譬如这个分解把(AUTHOR,BNAME)→B#丢失了,数据语义将会引起新的矛盾。
5.如果R是BCNF模式,那么R也是3NF模式

6.无损分解成BCNF模式集的算法
   ①对于关系模式R的分解ρ(初始时ρ={R}),如果ρ中有一个关系模式Ri相对于πRi(F)不是BCNF。Ri中存在一个非平凡FD X→Y,有X不包含超键。此时把Ri分解成XY和Ri-Y两个模式。重复上述过程,一直到ρ中每一个模式都是BCNF。
   ②这个算法能保证把R无损分解成ρ,但不一定能保证ρ能保持FD
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
分享:数据库系统原理第三章基本概念及课后习题有答案
ch3_1_关系数据库设计理论
自考本科计算机关系模式设计理论
关系数据库理论:数据库的六大范式知识笔记
写给开发者看的关系型数据库设计
数据库关系范式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服