关系模式范式级别判断_数据库原理笔记(四)——关系数据库理论(一)

引言

  • 从这部分开始,我们就开始进入数据库设计与应用开发篇,具体知识网络如下

df31e19362a6358dadd11f874239e8af.png
  • 第四章和第五章作为理解内容,之后看情况补充

问题的提出

  • 关系数据库的逻辑设计

6e4ed5dbfa8ed2264edc614fbfe181a4.png
  • 数据依赖
    • 数据依赖是完整性约束的表现形式,数据内在的联系
    • 数据依赖类型
      • 函数依赖
      • 多值依赖
  • 数据依赖对关系模式的影响
    • 关系模式中的问题

ca97f9743e1a476ed600a8a8030eeed6.png
Sno为学生学号,Cno为学生姓名,Sdept为系名称,Mname为系主任名字,Grade为成绩
      • 数据冗余太大(次要)
      • 更新异常:例如新插入刚成立的系,系里面没有主任,因此不能确定系主任
      • 插入异常
      • 删除异常
    • 通过分解关系模式来消除其中不适合的数据依赖

规范化(范式)

  • 用规范化看关系模式好坏与否
  • 函数依赖
    • 定义:在X中一个行给一个a,能确定一个y,在另一个行中a仍能确定y,记作X—>Y
    • 函数依赖来源于现实世界,可能会多加约束条件
    • 函数依赖分类★
      • 非平凡函数依赖和平凡函数依赖

748bdb50a1a1bfc904e171208a1e2b7e.png
      • 完全函数依赖与部分函数依赖

78e18bf9532bb1c4da20f192be25fce6.png
      • 传递函数依赖

fc80e03082b264d2a6f82ae5083f71f3.png
    • 定义:设K为R<U,F>中的属性或属性组合。若K完全依赖U, 则K称为R的侯选码
    • 主属性:候选码中的属性
    • 非主属性:非候选码中的属性
    • 全码:整个属性组是码
    • 外码
  • 范式
    • 范式是一个标准,符合某一级别的关系模式的集合
    • 范式种类

cd01c8cdc384b526b245b3d3d190f454.png
  • 范式基础:函数依赖
  • 使用范式步骤:确定码,确定主属性和非主属性,确定函数依赖
  • 各种范式之间的联系:

a295e32bbb5417b4cb204e507bbbbc03.png
  • 规范化:一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合
  • 1NF
    • 定义:如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF
    • 关系数据库必须满足1NF
  • 2NF
    • 定义:若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF
    • 单码的关系模式一定满足第二范式
    • 在分解的若干个关系模式中必须保证有公共属性
    • 2NF并不能完全消除关系模式数据冗余和异常
  • 3NF
    • 定义:在2NF基础非主属性不能有传递依赖,则R∈3NF
    • 3NF并不能完全消除关系模式数据冗余和异常
  • BCNF
    • 定义:在3NF基础上一个关系依赖里面每一个决定因素都包含码,即没有其他决定因素
    • 实际中很难到达BC范式,已经解决了操作异常问题
    • BCNF实际上是对第三范式的修正和补充
  • 4NF(了解性)
    • 第四范式是多值依赖的问题,函数依赖的问题之前已经解决
    • 4NF之前是函数范式范畴,4NF是多值依赖范畴
    • 多值依赖
      • 有数据冗余问题的时候,对数据操作访问的元组比较多
      • 定义:对于给定的(X,Y)值,决定的Z的值仅仅与X有关,而与Y无关
      • 多值依赖分类
        • 平凡多值依赖:Z为空集,平凡多值依赖无意义
        • 非平凡多值依赖
      • 多值依赖是对三个属性的操作
      • 多值依赖具有对称性,传递性
      • 函数依赖是多值依赖的特殊情况
    • 多值依赖导致数据冗余
    • 4NF定义:不能有非平凡且非函数依赖的多值依赖,允许的是左部必须包含码的函数依赖

规范化小结

  • 规范化是数据库逻辑设计的工具
  • 目的是尽量消除操作异常和冗余

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值