- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.1数据依赖
4.1 数据依赖 例 2.平凡函数依赖与非平凡函数依赖 * * 4.1.1 关系模式中的数据依赖 关系模式是对关系的描述,为了能够清楚地刻划出一个关系,它需要由五部分组成,即应该是一个五元组: R ( U , D , DOM , F ) 其中 R 为关系名,U 为组成该关系的属性名集合,D 为属性组 U 中属性所来自的域,DOM 为属性向域的映象集合,F 为属性间数据的依赖关系集合。 由于在关系模式 R ( U , D , DOM , F ) 中影响数据库模式设计的主要是 U 和 F, D 和 DOM 对其影响不大,为了方便讨论,本章将关系模式简化为一个三元组: R ( U,F ) 当且仅当 U 上的一个关系 r 满足 F 时,r 称为关系模式 R ( U,F )的一个关系。 4.1.2 数据依赖对关系模式的影响 数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质,是语意的体现。 现在人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖(functional dependency,简记为FD)和多值依赖(multivalued dependency,简记为MVD)。 函数依赖普遍地存在于现实生活中。比如,描述一个学生的关系,可以有学号(Sno)、姓名(Sname)、所在系(Sdept)等几个属性。由于一个学号只对应一个学生,一个学生只在一个系。因而当“学号”值确定后,姓名及其所在系的值也就被唯一地确定了。属性间的这种依赖关系类似于数学中的函数。因此说Sno函数决定 Sname和 Sdept,或者说 Sname和 Sdept函数依赖于 Sno, 记作: Sno→Sname, Sno→Sdept。 现在建立一个描述学校的数据库,该数据库涉及的对象包括学生的学号(Sno)、所在系(Sdept)、系主任姓名(Mname)、课程名(Cname)、和成绩(Grade)。假设学校的数据库模式由一个单一的关系模式Student构成,则该关系模式的属性集合为 U={Sno,Sdept,Mname,Cname,Grade} 现实世界的已知事实告诉我们: 一个系有若干学生,但一个学生只属于一个系; 一个系只有一名主任; 一个学生可以选修多门课程,每门课程有若干学生选修; 每个学生所学的每门课程都有一个成绩; 从上述事实可以得到属性组 U 上的一组函数依赖 F(如图4-1所示) 更新异常。由于数据冗余,当更新数据库中的数据时,系统要付出很大的代价来维护数据库的完整性,否则会面临数据不一致的危险。比如,某系更换系主任后,系统必须修改与该系学生有关的每一个元组。 插入异常。如果一个系刚成立,尚无学生,就无法把这个系及其系主任的信息存入数据库。 删除异常。如果某个系的学生全部毕业了,在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。 鉴于存在以上种种问题,可得出结论:Student关系模式不是一个好的模式。一个“好”的模式应该不会发生插入异常、删除异常、更新异常、数据冗余应尽可能少。 一个关系模式之所以会产生上述问题,是由存在于模式中的某些数据依赖引起的。规范化理论正是用来改造关系模式,通过分解关系模式来消除其中的某些不合适的数据依赖,以解决 插入异常、删除异常、更新异常、数据冗余度大 的问题。 规范化理论致力于解决关系模式中不合适的数据依赖的问题,而函数依赖和多值依赖是最重要的数据依赖。 函数依赖 定义:设 R(U)是一个关系模式,U 是 R 的属性集合,X 和Y 是 U 的子集。对于 R(U)的任意一个可能的关系 r,如果 r 中不存在两个元组,它们在 X 上的属性值相同,而在 Y 上的属性值不同, 则称 “X函数确定Y ” 或 “Y函数依赖于X ”,记作: X→Y 。 对于函数依赖,需要说明以下几点: 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 4.1.3 有关概念 函数依赖和别的数据之间的依赖关系一样,是语义范畴的概念。我们只能根据数据的语义来确定函数依赖。 例如 “姓名→年龄”
您可能关注的文档
- 2016年专科入学测试模拟题.doc
- 2016年中文期刊订购目录.doc
- 2016年全国综合实力百强县、百强区、千强镇新鲜出炉.doc
- 2016年度山东省社会科学规划研究项目.doc
- 2016年教师素质提高计划河南省省级培训项目.doc
- 2016年普通高等学校招生全国统一考试(天津卷).doc
- 2016年江苏省录用公务员考试.doc
- 2016年浙江省录用公务员考试.doc
- 2016年浙江政法干警行测专项练习讲解.ppt
- 2016年第40期总第219期2016年11月04日出版.doc
- 2024自考专业(计算机信息管理)自我提分评估及参考答案详解【B卷】.docx
- 2024自考专业(计算机信息管理)能力检测试卷(夺分金卷)附答案详解.docx
- 2024自考专业(计算机信息管理)自我提分评估及答案详解(考点梳理).docx
- 2024自考专业(计算机信息管理)自我提分评估含答案详解AB卷.docx
- 2024自考专业(计算机信息管理)自我提分评估含答案详解AB卷.docx
- 2024自考专业(计算机信息管理)自我提分评估附完整答案详解【夺冠】.docx
- 2024自考专业(计算机信息管理)自我提分评估附完整答案详解(全国通用).docx
- 2024自考专业(计算机信息管理)自我提分评估含答案详解【考试直接用】.docx
- 2024自考专业(计算机信息管理)自我提分评估附完整答案详解【精选题】.docx
- 2024自考专业(计算机信息管理)自我提分评估含完整答案详解(全国通用).docx
文档评论(0)