网站大量收购独家精品文档,联系QQ:2885784924

数据库系统范式教程.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库系统范式教程

数据依赖对关系数据库的影响 函数依赖 关系模式的范式 关系模式的规范化 数据依赖的公理系统 数据依赖对关系模式的影响 关系模式设计不规范会带来一系列的问题 数据冗余、更新异常、插入异常、删除异常 示例1: 关系模式 R(Tname, Addr, C#, Cname) 一个教师只有一个地址(户口所在地) 一个教师可教多门课程 一门课程只有一个任课教师 因此R的主码是(C#) R的一个实例 问题(1):数据冗余 教师T1教了三门课程,他的地址被重复存储了2次。 问题(2):更新异常 如果T1的地址变了,则需要改变3个元组的地址;若有一个未更改,就会出现数据不一致。但DBMS无法获知这种不一致。 问题(3):插入异常 如果要增加一名教师,但他还未带课,则C#和Cname为空,但由于C#是主码,为空违反了实体完整性,所以这名教师将无法插入到数据库中。 问题(4):删除异常 如果教师T3现在不带课了,则需将T3的元组删去,但同时也把他的姓名和地址信息删掉了。 如何解决? 方法:模式分解 方法1:R分解为 R1(Tname, Addr) R2(C#,Cname) 方法2 R1(Tname, Addr, C# ) R2( C#, Cname) 方法3 R1( Tname, Addr) R2( Tname, C#, Cname) 示例2:描述学校的数据库: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname),成绩(Grade) 单一的关系模式 : Student U、F 其中: U ={Sno, Sdept, Mname, Cname, Grade} F={Sno → Sdept, Sdept → Mname, (Sno,Cname) → Grade} 数据依赖对关系模式的影响(续) 学校数据库的语义: ⒈ 一个系有若干学生,一个学生只属于一个系; ⒉ 一个系只有一名主任; ⒊ 一个学生可以选修多门课程,每门课程有若干学生选修; ⒋ 每个学生所学的每门课程都有一个成绩。 关系模式StudentU, F中存在的问题 ⒈ 数据冗余太大 浪费大量的存储空间 例:每一个系主任的姓名重复出现 ⒉ 更新异常(Update Anomalies) 数据冗余 ,更新数据时,维护数据完整性代价大。 例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组 关系模式StudentU, F中存在的问题 ⒊ 插入异常(Insertion Anomalies) 该插的数据插不进去 例,如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。 ⒋ 删除异常(Deletion Anomalies) 不该删除的数据不得不删 例,如果某个系的学生全部毕业了, 我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。 数据依赖对关系模式的影响(续) 结论: Student关系模式不是一个好的模式。 “好”的模式不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。 原因:由存在于模式中的某些数据依赖引起的 解决方法:通过分解关系模式来消除其中不合适的数 据依赖。 规范化理论 规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。 要解决的内容 到底什么样的模式才最佳? 怎么分解才能达到要求? 标准是什么? 如何实现? 函数依赖 关系模式是对关系的描述,它由五部分组成: R(U,D,Dom,F) R为关系模式名; U是一个属性集; D是U中属性的值所来自的域; Dom是属性向域的映射集合; F是属性间的依赖关系。 函数依赖 定义11.1 设 R(U)是一个关系模式,U是R 的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记做X→Y。 函数依赖 换一种说法: 设关系模式R(A1,A2,…,An)或简记为R(U),U是R的属性集合,X和Y是U的子集。r是R的任意一个实例(关系),若r的任意两个元组t1、t2,由t1[X]=t2[X]可导致t1[Y]=t2[Y],即如果X相等则Y也相等,则称Y函数依赖于X或称为X函数决定Y,记作 X→Y。 函数依赖 即R的X属性集上的值可唯一决定R的Y属性集上的值。 也即对于R的任意两个元组,X上的值相等,则Y上的值也必相等。 重要说明 1.函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 2.函数依赖是语义范畴的概念。只

文档评论(0)

82393aa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档