加油!

不要停止奔跑,

不要回顾来路,

来路无可眷顾,

值得期待的只有远方。 


关系数据理论是关系数据库的理论基础,

为数据库设计提供了判别标准,

是设计关系数据库的指南。

数据存储异常(因为存在数据依赖)——数据冗余、不一致性、插入异常、删除异常

S(NO, NAME, SEX, COUR, DEGR);

学生表(学号,姓名,性别,课程,成绩);

数据冗余:―个学生选修多门课程,这样导致学生姓名(NAME)和性别(SEX)多次重复存储;

不一致性:由于数据存储冗余,当更新某些数据项时,就有可能一部分字段修改了,而另一部分字段未修改,造成存储数据的不一致性;

插入异常:如果某个学生未选修课程,则他的(NO,NAME,SEX)信息无法插入,因为COUR为空,关系数据模式规定主关键字不能为空或部分为空,这便是插入异常;

删除异常:当要删除所有学生成绩时,将所有(NO,NAME,SEX)也都删除了,这便是删除异常。

 数据存储异常是因为存在数据依赖,而绝大多数的数据依赖是函数依赖!!!

函数依赖:X函数决定Y,或Y函数依赖于X,则记为X→Y;

        完全函数依赖:Y函数依赖于整个X,记为X--f-->Y

        部分函数依赖:Y函数依赖于X的某个真子集,记为X--p-->Y;

        传递函数依赖:X→Y,Y→Z,且Y—\→X,Z-Y≠∅,Y-X≠∅,则称为Z传递依赖于X,记为X--t-->Z。

函数依赖公理——Armstrong公理;

自反性:若Y⊆X ,则X→Y;

        增广性:若X→Y,则XZ→YZ;

                传递性:若X→Y,Y→Z,则X→Z;

合成规则:若X→Y,X→Z,则X→YZ;

        分解规则:若X→YZ,则X→Y,X→Z;

                伪传递规则:若X→Y,YW→Z,则XW→Z。

 属性之间有三种关系,但并不是每一种关系中都存在函数依赖。

如果X和Y之间是"1  :1"关系(如学校和校长),则存在函数依赖: X→Y和Y→X

如果X和Y之间是"m  :1"关系(如学号和姓名),则存在函数依赖:X→Y。(学号 决定 名字)

如果X和Y之间是"m  :n"关系(如学生和课程),则X和Y之间不存在函数依赖

 有一个关系模式R(U),F为其函数依赖集,则所有用Armstrong公理从F中推出的函数依赖X→Ai中Ai的属性集合为X的属性闭包,记为X+。

函数依赖的最小集:对于给定的函数依赖F,当满足下列条件时,称为F的最小集,记作 F';

(1)F的每个依赖的右部都是单个属性;
         (2)对于F中的任何一个函数依赖X→A,F'-{X一A}与F'都不等价;
         (3)对于F中的任何一个X→A和X的真子集Z(F'-{X→A})U{Z→A}与F'都不等价。

条件(2)保证了在F中不存在多余的函数依赖;

条件(3)保证了F中每个函数依赖的左边没有多余的属性;

        第一范式(1NF):设R是一个关系模式,R属于第一范式当且仅当R中每一个属性A的值域只包含原子项,即不可分割的数据项。第一范式不能排除数据冗余和更新异常等问题,因为其中可能存在部分函数依赖。

        第二范式(2NF):设R是一个关系模式,R属于第二范式当且仅当R是1NF,且每个非主属性都完全函数依赖于主关键字。第二范式也可能存在数据冗余和更新异常等问题,因为其中可能存在传递函数依赖。

        第三范式(3NF):设R是一个关系模式,R属于第三范式当且仅当R是2NF,且每个非主属性都非传递函数依赖于主关键字。

        BC范式(BCNF):设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选关键字。

        第四范式(4NF):给定关系模式R及其属性A和B,对于一给定的A值,就有一组B属性值与之对应,而与其他的属性(R-A-B)没有关系,则称“B多值依赖于A”或“A多值决定B",记作A→→B。

关系模式的分解:无损连接性、函数依赖保持性

 无损连接性:指的是对关系模式分解时,原关系模式下的任一合法的关系实例在分解之后应能通过自然连接运算恢复起来。

 函数依赖保持性:设关系模式R的一个分解p={R1,R2,....Rk},F是R的依赖集,如果F等价于ПR1(F)U ПR2(F)U ...U ПRk(F),则称分解p具有依赖保持性。

   一个无损连接分解不一定具有依赖保持性;同样,一个依赖保持性分解不一定具有无损连接性。

关系模式的分解和范式组合在一起也是一个很复杂的问题 ! ! ! 

是真的复杂 ! ! ! 

数据库原理与应用(SQL)——3、关系数据理论(函数依赖、闭包、函数依赖集的最小集、规范化---范式 )相关推荐

  1. 【数据库原理及应用】经典题库附答案(14章全)——第五章:关系数据理论

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  2. 【数据库系统设计】关系数据理论(函数依赖、码、范式、模式分解)

    关系数据理论 6.1 为什么要学习关系数据理论 什么是好的数据库逻辑设计 什么是数据依赖 关系模式的简化表示 6.2 规范化 - 关系的规范化理论 6.2.1 函数依赖 1.函数依赖 2.平凡函数依赖 ...

  3. 数据库复试--关系数据理论(主观题)

    第五章 关系数据理论 1. 在关系模式R(D,E,G)中,存在函数依赖关系{E→D,(D,G)→E},则候选码是__________,关系模式R(D,E,G)属于____________. 正确答案: ...

  4. 数据库复习——关系数据理论中的几个重要概念(闭包,逻辑蕴含,覆盖...)

    前言 关系数据理论中几个比较抽象的概念 正文 一.函数依赖 定义 设R(U)是属性集合U={A1,A2,-,An}上的一个关系模式,X, Y是U上的两个子集,若对R(U)的任意一个可能的关系r, r中 ...

  5. 数据库系统-关系数据理论

    数据库系统-关系数据理论 关系数据库规范化理论 关系数据库规范化是为了告诉你如何才能设计出合适的库和表. 关系模式由五部分组成,即它是一个五元组 ​ R(U,D,DOM,F) R: 关系名 U: 组成 ...

  6. (数据库系统概论|王珊)第六章关系数据理论-第一节:为什么要研究关系数据理论

    文章目录 一:概念回顾:关系模式 二:数据依赖 三:一个例子:不遵循关系数据理论导致的问题 一句话,研究关系数据库理论就是为了设计出合适的关系模式,也即合适.高效的表 一:概念回顾:关系模式 相关文章 ...

  7. 数据库系统概论第六章(关系数据理论)知识点总结(2)—— 码的概念总结

    本专栏收录了数据库的知识点,而从本文起,将讲述有关于关系数据理论中的第一范式.第二范式.第三范式以及BC范式有关知识点,提供给有需要的小伙伴进行学习,本专栏地址可以戳下面链接查看

  8. 第6章 关系数据理论—多值依赖和4NF

    第6章 关系数据理论-多值依赖和4NF 本篇文章全部内容来自数据库系统概论第五版-王珊.萨师煊著. 这是对自己学习的总结,如有错误,请大家指正,一起进步! 1.多值依赖 例:学校某一门课程由多个教授讲 ...

  9. 第6章 关系数据理论—范式的介绍

    第6章 关系数据理论-范式的介绍 本文全部内容来自数据库系统概论(第5版)-王珊.萨师煊著 部分函数依赖图,出于自己的理解,如有错误,请大家评论指正! 范式:关系数据库中需要满足的一定要求的规范形式. ...

最新文章

  1. 什么是数据中台?全面解读数据中台
  2. python 参数
  3. python之生成器
  4. Kubernetes and Cloud Native Meetup (广州站)资料下载
  5. Thymeleaf 语法快速入门
  6. 常量与格式化输出练习
  7. HDU4514(非连通图的环判断与图中最长链)
  8. 狼行天下:追寻狼迹内蒙生态行第二天(续1)
  9. mysql数据传输完整性_Mysql——数据库完整性
  10. 关于图的题目不给数据范围的情况如何解决
  11. 三笔输入法 开发过程记录
  12. Netty集成WebSocket实现客户端、服务端长连接
  13. SylixOS中AHCI驱动框架分析
  14. 电脑Win7系统桌面图标太大怎么调小
  15. js 实现新年倒计时 定时器使用
  16. web开发第三方登陆之facebook登陆
  17. 【已解决】python 使用xlrd,xlwt 修改execl单元格的背景色
  18. OpenCV-Python图像的减法运算cv2.subtract函数详解以及和矩阵减法的差异对比
  19. GPS时钟系统,GPS同步时钟系统
  20. 每个人心里都有一座巴别塔-The dogs of babel巴别塔之犬

热门文章

  1. 手机的eMMC 5.1、UFS 2.1到底是啥意思?哪个更好?
  2. redhat 7中配置与管理WEB服务器
  3. Spring Boot学习笔记-Nginx+Jar包部署项目
  4. 小蜘蛛 七乐彩随机选号器 v1.0 下载
  5. 2021-01-10/11
  6. Android_运用log4j打印日志
  7. 三张图解决Jmeter读配置csv文件
  8. Bebug与Release版本
  9. go 解析 toml
  10. Array Nesting