关系数据库的模式分解:FD和BCNF、3NF以及MVD和4NF

本文探讨了关系数据库模式分解的重要性,解释了BCNF、3NF以及MVD如何影响模式分解。通过消除冗余、保持依赖及确保信息可恢复,BCNF有助于解决函数依赖问题,但可能导致依赖的破坏。3NF在此基础上放松条件,旨在实现无损连接和依赖保持,而MVD则涉及属性值的独立性。通过对MVD的推导,证明了分解的有效性。文章强调理解这些概念对于关系数据库设计至关重要。
摘要由CSDN通过智能技术生成

  一个优秀的关系模式的分解应当满足三个条件:消除异常(冗余、更新异常、删除异常),信息的可恢复以及依赖的保持。

  对关系数 据库模式进行BCNF分解之后可以消除FD带来的冗余,并满足信息的可恢复(通过自然连接可以达到无损连接),但可能会破会关系的函数依赖的保持,原因是 会将满足FD的属性集合分解到不同的关系模式中,使得FD最小集的减少。在BCNF的基础上引入3NF,放松对BCNF条件的限制,可以得到满足无损连 接、依赖保持,但并不保证能消除异常的关系模式,原因是降低了对函数依赖的限制,条件变为或非平凡函数依赖的左边是超键或其右边仅为主属性构成。

  BCNF可以消除与FD有关的冗余,但仍然会存在MVD导致的冗余,MVD的概念相比FD稍微难以理解,MVD是指在关系R中,当给定某个属性集合的值 时,存在另外一组属性集合,该组属性集合的值与关系中所有其他属性的值独立。为便于理解,将一个关系的属性分为三个属性组A、B、C,当给定属性A的值 时,B和C的属性组上的取值独立,意思是说B和C的取值可以随意搭配出现在关系中,B的取值不会影响C的取值。

  关系模式中MVD的推导相比FD要难一些,对于MVD的推导可以使用chase:从给定的FD和MVD集中推导出需验证的MVD X->->Y, 则初始图例要包含两个在X上一致但在所有其他属性上均不一致的行。使用给定的FD来等同字母,使用给定的MVD来交换已有的两行中某些属性的值,以便在图 例中加入新的行。如果在图例中发现了这样的一个原始元组,它的Y分量被另一个原始元组所替代,那么就推导出了目标MVD。

  MVD推导的具体做法:关系R上存在FD和MVD集,推导或验证MVD:X->->Y。将关系分为三个属性集X、Y和Z,开始时,图例中存在两个元组t和u,两个元组在X属 性组上取值相同,在Y和Z属性组上取值不一致,通过

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值