• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 英语学习 > 正文

    数据库中的多值依赖 数据库多值依赖

    时间:2019-02-12 03:34:13 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘要:多值依赖对学习关系规范化理论方面有着重要的作用。本文就多值依赖的产生、定义、性质及如何消除由此引起的冗余等方面进行了简单的归纳总结。   关键词:多值依赖 冗余 关系规范化
      
      一、多值依赖的产生
      
      在学习数据库的相关知识时,我们会接触到关系数据库设计规范化的内容。在构造关系时,经常会发现数据冗余和更新异常等现象,这是由关系中各属性之间的相互依赖性和独立性造成的,也就是关系中的函数依赖和多值依赖。其中在函数依赖的范畴中,如果一个关系数据库中的所有关系模式都满足于BC范式,它就实现了模式的彻底分解,达到最高的规范化程度。下面给出其关系模式规范化流程图:
       1NF
      ↓ 消除非主属性对键码的部分依赖
      2NF
      ↓ 消除非主属性对键码的传递依赖
      3NF
      ↓ 消除主属性对键码的部分和传递依赖
      BCNF
      但是我们有时会遇到这样的情况,设计一个关系模式满足BC范式,但该关系依然有和函数依赖无关的某种冗余。请看如下一个例题:
      设学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。用关系模式Teaching(C,T,B)来表示课程C、教师T和参考书B之间的关系。
      
      用二维表表示如下:
      
      经过分析得出该关系模式主属性为(C,T,B),属于BC范式;但是它存在以下问题:
      1. 数据冗余度大,有多少名任课教师,参考书就要存储多少次;
      2. 增加操作复杂,当某一课程增加一名任课教师时,该课程有多少本参考书,就必须插入多少个元组;
      3. 删除操作复杂,某一门课程要去掉一门参考书,该课程有多少名教师,就必须删除多少个元组;
      4. 修改操作复杂,某一门课程要修改一门参考书,该课程有多少名教师,就必须修改多少个元组。
      产生这些问题的原因是参考书和教师的取值彼此独立,它们都只取决于课程名,也就是存在多值依赖。
      
      二、多值依赖的定义
      
      假设关系模式为R(A,B,C),其中A,B,C均为属性(集)。如果在A上取特定值,而在B上取值的集合与在C上取值的集合无关,则称多值依赖A→B在R中成立。多值依赖A→B可称为A多值决定B或B多值依赖于A。
      
      三、多值依赖的性质
      
      1. 对称性:若A→B,则A→C,其中C=R-X-Y;
      2. 函数依赖是多值依赖的特殊形式,即若A→B,则A→B。
      
      四、多值依赖与函数依赖的区别
      
      多值依赖A→B的有效性与属性集的范围有关,不仅涉及到A和B,还涉及到C;而函数依赖A→B的有效性只涉及到A和B。
      
      五、消除多值依赖引起的冗余
      
      如果把多值依赖用于新的关系分解算法中,那么由多值依赖引起的冗余是可以消除的,成为第四范式。我们来了解一下第四范式的定义。
      
      若关系模式R属于第一范式,且每个非平凡多值依赖的决定因素都包含键码,则R就属于第四范式。
      在本文例题中,Teaching(C,T,B)存在非平凡的多值依赖C→T,且C不是主码,则不属于第四范式,这也正是它存在数据冗余和操作复杂的原因。我们可以用投影分解法将关系模式Teaching分解得到:
      Teaching(C,T,B)CB(C,B)CT(C,T)
      我们利用第四范式的定义分析得到CB、CT均属于第四范式,即消除了非平凡的多值依赖,这样开始的几个问题也得到了解决。
      
      参考文献:
      [1]史嘉权等.数据库系统概论.清华大学出版社.
      
      “本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”
    本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

    推荐访问:数据库中 依赖

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章