数据库 | 关系数据库 | 函数依赖 | 码 | 范式

目录

如何判断R为第几范式?

规范化

关系模型

数据依赖

什么是函数依赖

定义

平凡函数依赖与非平凡函数依赖

完全函数依赖与部分函数依赖

传递函数依赖

确定函数依赖的方法

外部码

范式

1NF

2NF

3NF

BCNF

多值依赖

4NF


如何判断R为第几范式?

已知一个关系模式的属性之间的语义,也就是相互依赖的关系,如何判断该模式满足第几范式?

1、首先要通过语义把属性之间的函数依赖关系列出来,

2、然后确定哪些属性组合可以候选码,从而找出非主属性和主属性。

3、然后判断是否存在非主属性与码之间的部分函数依赖关系,如果存在,则不满足2NF,如不存在部分函数依赖,则属于2NF

4、继续进行下一步判断;判断非主属性与码之间存在传递依赖关系,不存在,则为3NF

5、决定因素是否包含码,满足条件则为BCNF

简而言之


规范化

规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。


关系模型

关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F)

R:关系名

U:组成该关系的属性名集合

D:属性组U中属性所来自的域

DOM:属性向域的映象集合

F:属性间数据的依赖关系集合

简化为一个三元组:R(U, F)


数据依赖

  • 什么是函数依赖

  • 定义

  • 平凡函数依赖与非平凡函数依赖

  • 完全函数依赖与部分函数依赖

  • 传递函数依赖

  • 确定函数依赖的方法


外部码


范式

一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化

1NF

如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF

第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库

但是满足第一范式的关系模式并不一定是一个好的关系模式

(F为完全依赖,P为部分依赖)

(Sno,Cno)能完全决定S-L-C

2NF

R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF

采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。

将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。

3NF

R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。  

BCNF

关系模式STJ中有学生S,教师T和课程J这样的三个属性,约定的语义是每一个教师只教一门课,每门课有若干个教师,教师与课程之间是一对多的联系,也就是说教师函数决定课程。某个学生选定某门课,就对应一个固定的教师。

我们先来看一下这个关系模式的候选码都有哪些?大家记得候选码的定义吧,要求能够函数决定整个关系R的,而且它的真子集不能函数决定R。照这个标准来判断,我们看(SJ)可以作为候选码,因为学生选定某门课,就对应一个固定的教师,单独的学生和课程都不能决定老师;除此之外,(ST)是不也可以作为候选码的?因为学生和老师定了,则选的课也就定下来了,但是,其中的S不能决定JT,T不能决定S(!!!!!)。所以有两个候选码(SJ)和(ST),这样看来,根据主属性的定义,出现在任何候选码中的属性均为主属性,则三个属性均为主属性,没有非主属性,所以自然满足3NF

是否满足BCNF呢?就要看一下主属性的依赖关系了,根据定义,如果决定因素都包含码,则是BCNF,这里的T也是主属性,因为教师定了,课程也定了,但是T不包含码,所以不满足BCNF。大家对这里的理解主要是对候选码的定义上,候选码与其余属性的关系不一定要求是完全函数依赖的。这里列出来的3个函数依赖关系,第一个为完全函数依赖,第二个为部分函数依赖,第三个为完全函数依赖,因为决定因素为单个属性。

多值依赖

R(U)是一个属性集U上的一个关系模式, XYZU的子集,并且ZUXY。关系模式R(U)多值依赖 X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(xz)值,有一组Y的值,这组值仅仅决定于x值而与z值无关

Teaching(C, T, B) C课程 T教员 B参考书

平凡多值依赖和非平凡的多值依赖X→→Y,而Zφ

则称     X→→Y平凡的多值依赖

否则称X→→Y非平凡的多值依赖

性质:

1)多值依赖具有对称性

  若X→→Y,则X→→Z,其中ZUXY

2)多值依赖具有传递性

  若X→→YY→→Z, 则X→→Z –Y

3)函数依赖是多值依赖的特殊情况。

  若X→Y,则X→→Y

4)若X→→YX→→Z,则X→→YÈ Z

5)若X→→YX→→Z,则X→→Y∩Z

6)若X→→YX→→Z,则X→→Y-ZX→→Z -Y

4NF

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值