关系数据理论-范式的判断

 

  1. 首先要明白什么是关系模式,可以把它理解成一组具有某种联系的属性的集合。通常用一个三元组表示:R(U,F),其中R表示关系名,U表示一组属性,F表示属性组U上的一组数据依赖。(属性可以理解成一个表的各列名)
  2. 所谓数据依赖即一个关系内部属性与属性之间的一种约束关系,一般分为了函数依赖和多值依赖,对于函数依赖可以理解成y=f(x)的形式,比如有两个属性x、y,对于一个确定的x值,必然对应的属性y的值是确定的,例如学号和姓名,如果学号是确定的那么对应的这个人的名字也是确定的。
  3. 第一范式:关系模式的每一个分量都是不可分的数据项,即每一个属性都是不可再分的,反例:对于地区这一属性,如果它又可以再细分国家,国家又在分为省份、市等等,那么这一关系模式就不属于第一范式。
  4. 一个好的关系模式不应该发生数据冗余、更新异常、插入异常、删除异常。范式也并非是越高越好,实际生活中一般并不将关系模式分解到最高,而是分解到第三范式或者BCNF即可。
  5. 函数依赖的定义:(课本180-181)。重点理解完全依赖、部分依赖和传递依赖。对于完全依赖,比如有两个属性结合x,y,如果x-->y,并且x的任意真子集(即属性集x减少一个或多个属性)之后x-\->y,说明y对x完全依赖,如果存在x的一个真子集可以函数确定y,那么就是部分依赖。
  6. 如果关系模式的属性集U中存在一个属性或者属性集K,有K-->U,则K为关系模式的候选码,注意一个关系模式可以有一个或者多个候选码,但是只选择其中的一个候选码作为主码(即主键),对于包含主码中含有的所有属性的属性集称为超键(即在主码包含的属性的基础上再增加其他属性进去)。只要是属于候选码中的属性均称为主属性,(不管这个候选码是不是被作为主码),否则称为非主属性。
  7. 范式之间的关系:,方向是高范式到低范式(高范式属于低范式,可以理解成低范式的范围比较大,高范式是其中的一部分,如果一个范式是3NF,那么必然是2NF,反之不一定成立),低范式可以通过分解向高范式转换。
  8. 第二范式:其实质是消除非主属性对候选码的部分依赖,比如有一个关系模式R(A,B,C,D),其中(A,B)是候选码,如果满足第二范式,则不存在诸如A-->C,D或者B-->C,D的部分函数依赖,而只存在(A,B)-->C,D的函数依赖,即候选码的真子集不能函数决定非主属性。
  9. 第三范式:其实质是在第二范式的基础上增加了消除非主属性对候选码的传递依赖,比如有一个关系模式R(A,B,C,D),其中(A,B)是候选码,如果满足第三范式,则不存在诸如(A,B)-->C,而C-->D,导致(A,B)-传递->D的函数依赖。
  10. BCNF范式:其实质是在第三范式的基础上增加对主属性的约束,因为一个关系模式中如果有多个候选码,但是只有一个候选码被选中作为主码,BCNF要保证没有被选为主码的候选码中的主属性对主码也是完全依赖的,可以看一下课本185的例题8,对于关系模式STJ(S,T,J),其候选码可以是(S,J)或者是(S,T),因此三个属性都是主属性,所以是不可能存在部分依赖和传递依赖的(原因:部分依赖和传递依赖针对的是非主属性和主属性之间的依赖关系),所以必定属于第三范式,接下来判断是否是BCNF范式,由于存在函数依赖(S,J)-->T,(S,T)-->J,T-->J,我们可以看到主属性J对主码(S,T)是部分依赖的,因为T就可以函数决定J。
  11. 模式的分解就是使得关系模式中的函数依赖满足上述的定义。
  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值