数据库关系范式

参考链接:
https://www.zhihu.com/question/24696366
总结:
范式的含义:
符合某种级别的关系模式的集合。表示一个关系内部的各属性之间联系的合理化程度。可以理解为:数据表的表结构所符合的某种设计标准的级别。
第一范式:是对关系模式的基本要求。不满足第一范式的关系,不能称为关系型数据库。符合第一范式的关系,每个属性都不可以再分割。
但是如果仅仅满足第一范式:仍然存在数据冗余过大、插入异常、删除异常、修改异常等的问题。
第二范式:建立在第一范式的基础上,首先满足第一范式。
消除了非主属性对码的部分函数依赖。
概念解析:
函数依赖,在一张表中,属性x(可能为一个属性也可能为一个属性组)确定的情况下,Y的取值必定可以确定。我们就说Y依赖于X。跟y=f(x)的关系很相似。
衍生三个函数依赖 的概念:
完全函数依赖,部分函数依赖,传递函数依赖。
属性Y依赖于属性X。X可能为一个属性或者一个属性组。
完全函数依赖::如果X为一个属性,那么Y对于X就是完全函数依赖。如果X为一个属性组,对于X的任何一个真子集X”,Y都不能依赖于它。那么函数Y对于X完全函数依赖。
部分函数依赖:
如果,X为一个属性组。对于X的某个真子集,Y依赖于它。那么就成函数Y对于X部分函数依赖。
传递函数依赖::如果Z函数依赖于Y,Y函数依赖于X;X不依赖于Y,Y不包含于X。那么我们就称之为Z传递依赖于X。
码:
假设K为表中某个属性或者某个属性组。对于除了K以外的其他的属性,都完全依赖函数依赖于K。我们就称K为候选码,简称码 。加入K中的属性确定的情况下,其他的属性,完全都能确定,如果K不确定或者K中的任何一个属性不确定,其他的属性不能确定,我们就说K为码。一张表中可以有超过一个码。
包含在任何一个码中的属性称为主属性。其余的称为非主属性,即任何一个码中都不包含的属性,成为非主属性。
如何判断一个数据表,是否满足第二范式:
第一步:先找出数据库中所有的码。
先找出单个属性,再找出两个属性的组合,再找出三个属性的….
技巧:如果某个属性或者属性组是码,记为K。那么包含这个K的属性组一定不是码。
第二步:根据码找出所有的主属性,去除所有的主属性,剩下的就是非主属性了。
第三步:查看非主属性,是否有对码。查看非主属性,对码是否是完全函数依赖。如果是,就是符合第二范式。否则就不符合。

作者:lzbhnr
来源:CSDN
原文:https://blog.csdn.net/lzbhnr/article/details/78469923
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值