第六章关系数据库理论

概念回顾

  • 关系:描述实体、属性、实体间的关系;从形式上来看,一张二维表;是所涉及属性的一个笛卡尔积;
  • 关系模式:用来定义关系;
  • 关系数据库:基于关系模型的数据库,利用关系描述现实世界;从形式上来看,是由一组关系组成;
  • 关系数据库的模式:定义这组关系的关系模式的全体;
  • 关系模式的形式化定义R(U, D, DOM, F);R为关系名,U为组成该关系的属性名组合,DOM为属性向域的映象组合,F为属性间数据的依赖关系集合;可以简化为R(U,F) 当且仅当U上的一个关系r 满足F时,r称为关系模式 R(U, F)的一个关系
  • 完整性约束的表现形式:① 限定属性取值范围;② 定义属性间的相互关连(主要体现在值是否相等、参照关系)这就是数据依赖
  • 数据依赖:一个关系中属性间值的相等与否体现的数据间的关系
  • 数据依赖的类型:① 函数依赖;②多值依赖;③ 连接依赖;

6.1数据依赖对关系模式的影响

描述学校的数据库
  • 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade)Student (U,F) U ={ Sno, Sdept, Mname, Cname, Grade }
    在这里插入图片描述
此关系存在的问题很多?
  • 数据冗余太多,同一个系主任的名字要多次出现
  • 更新异常,当某一个系主任变更后,有大量元组需要进行修改
  • 插入异常,如果一个系刚成立,还没有学生,系主任的信息就存不进去
  • 删除异常,某一个系学生全部毕业后,该系主任信息随之删除,查询不到
出现问题的原因
  • 数据依赖太严重
解决方法
  • 分解关系模式消除数据依赖

6.2规范化

6.2.1 函数依赖

  • 函数依赖:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
    若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。 其中,X称为这个函数依赖的决定属性集, Y=f(x);比如 Y是学生姓名,X是学生的学号。
  • 函数依赖不是指某一个或者某些关系满足约束条件,而是所有的关系模式都需要满足条件
    在这里插入图片描述
平凡函数依赖和非平凡的函数依赖
  • 在关系模式R(U)中,对于U的子集X和Y,
  • 如果X→Y,但Y 不属于X,则称X→Y是非平凡的函数依赖;如:(Sno, Cno) → Grade
  • 若X→Y,但Y属于X, 则称X→Y是平凡的函数依赖 如:(Sno, Cno) → Sno
完全函数依赖和不完全函数依赖

在这里插入图片描述
在这里插入图片描述

传递函数依赖

在这里插入图片描述

6.2.2 码

  • 候选码、主码、码;

6.2.3 范式

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

6.2.4 2NF

  • 若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF。
    在这里插入图片描述
  • 将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余
所以对于SL模式还需进一步处理

6.2.5 3NF

  • 把SL分解为:SD( Sno码, Sdept) DL(Sdept码 , Sloc)
    - 关系模式R<U,F> 中若不存在这样的码X、属性组Y及非主属性Z(Z 不属于 Y), 使得X→Y,Y → X,Y→Z,成立,则称R<U,F> ∈ 3NF。

在这里插入图片描述

6.2.6 BCNF

  • 设关系模式R<U,F>∈1NF,如果对于R的每个函数依赖X→Y,若Y不属于X,则X必含有候选码,那么R∈BCNF。
    在这里插入图片描述
    在这里插入图片描述
3NF和BCNF的区别
  • 如果关系模式R∈BCNF, 必定有R∈3NF
  • 如果R∈3NF,且R只有一个候选码, 则R必属于BCNF。
BCNF的关系模式所具有的性质
  • ⒈ 所有非主属性都完全函数依赖于每个候选码
  • ⒉ 所有主属性都完全函数依赖于每个不包含它的候选码
  • ⒊ 没有任何属性完全函数依赖于非码的任何一组属性

6.2.7 多值依赖

6.2.8 4NF

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值