第五章 关系数据库设计理论 数据库原理与设计教学课件.pptVIP

第五章 关系数据库设计理论 数据库原理与设计教学课件.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 关系数据库设计理论 数据库原理与设计教学课件

第五章 关系数据库设计理论 目的和要求 关系模式中可能存在哪些异常 为何存在这些异常 函数依赖 关系模式的规范形式 关系模式的规范化 内容 关系模式可能存在的异常 函数依赖 关系模式的规范化 一、关系模式中可能存在的异常 存在异常的关系模式示例分析 可能存在的异常 存在异常的原因 1. 存在异常的关系模式示例分析 在教学管理中,有人设计了如下的关系模式: SCT(S#,C#,CN,GRADE,TNAME,BDATE,SALARY) 其中的属性依次代表:学号,课程号、课程名,成绩,任课教师姓名,教师出生日期和工资。 学生和课程之间为m:n联系;教师和学生之间也为m:n联系;教师和课程之间也为m:n联系。 SCT(S#,C#,CN,GRADE,TNAME,BDATE,SALARY) 数据冗余大 如果某课程有100个学生选修,那么该任课教师的姓名、出生日期和工资等信息将重复存储100次,同样,课程名也将重复存储100次; 修改繁琐 例如当某位副教授月薪从1000元增加到1500元时,凡涉及到该教师的元组,都必须把属性“SALARY”的值由1000改为1500,否则将引起数据不一致。这是由数据冗余带来的修改困难; SCT(S#,C#,CN,GRADE,TNAME,BDATE,SALARY) 插入元组问题 SCT的关键字是(S#,C#),因此当某位教师尚未开课时,他的姓名、出生日期、工资等信息都无法存入关系中;甚至当一门课程还没被学生选修时,有关该课程的信息以及任课教师信息也无法存入SCT中。 删除元组问题 删除操作会引起信息的丢失。如当某教师调离学校而需要从SCT中将他的信息删除时,凡是选了他课程的学生成绩也都跟着被删除;又如当选修某门课程的学生全部毕业时,删除学生选课信息也必然把该教师的信息全部删去。 结论 若将SCT分解为如下三个关系模式: SC(S#,C#,GRADE) C(C#,CN,TNAME) T(TNAME,BDATE,SALARY) 上述的问题都能解决。由此例可看出: 评价一个关系模式的优劣应从上述四个方面来分析; 将一个不太理想的关系模式应分解为一组较理想的关系模式。 2. 可能存在的异常 插入异常 表现形式有两种:元组插不进去;插入一个元组却要插入多个元组。 删除异常 表现形式有两种:删除时删掉了其它信息;删除一个元组却删除了多个元组。 数据冗余 某种信息在关系中存储多次。 更新繁杂 修改一个元组,却要求修改多个元组。 3. 存在异常的原因 现实系统中的数据语义,由前面分析知,可通过完整性约束来保证。仅依靠完整性约束还不够,因为数据语义还会对关系模式的设计产生影响。 数据语义在关系模式中的具体表现是,在关系模式中的属性间存在一定的依赖关系,即数据依赖。 数据依赖有很多种,其中最重要的有函数依赖、多值依赖和连接依赖。 事实上,异常现象产生的根源,就是由于关系模式中属性间存在的这些复杂的依赖关系。 二、函数依赖 函数依赖是数据依赖的一种,它反映属性或属性组之间互相依存、互相制约的关系。由于关系模式中属性是实体特性的抽象或实体间联系的抽象,所以属性之间的相互关系反映了现实世界的某些约束,它们对数据库模式设计影响很大。 二、函数依赖 函数依赖定义 完全函数依赖和部分函数依赖 传递函数依赖 函数依赖举例 属性的联系与函数依赖的关系 关系中的键码定义 函数依赖的三个推理规则 闭包计算 1. 函数依赖定义 设有关系模式R(U),X,Y均为U={A1,A2,…,An}的子集,r为R的任一关系。如果对于r中的任意两个元组u、v,只要有u[X]=v[X],就有u[Y]=v[Y] ,则称X函数决定Y,或称Y函数依赖于X,记作X→Y。且称X为决定因素。当X?Y时,则称Y平凡函数依赖X,否则称Y非平凡函数依赖X。 2.完全函数依赖和部分函数依赖 设关系模式R(U),X,Y是R的属性集,且X→Y,当对X的每一个真子集X’都有X’ Y,则Y对X的函数依赖是完全的,记作X Y。 3. 传递函数依赖 设X,Y,Z为关系模式R(U)的互不相同的属性集合,如果X→Y,而Y X,但Y→ Z,则称Z传递函数依赖于X,记作 X Z。 如果Y X不成立,即Y→X,则X ? Y,实际上X→Z就是直接函数依赖而不是传递函数依赖了。 4. 函数依赖举例 SCT(S#,C#,CN,GRADE,TNAME,BDATE,SALARY) 根据语义有如下函数依赖关系: (S#,C#) →GRADE C# →CN,C# →TNAME TNAME →BDATE, TNAME →SALARY 完全函数依赖: 上面的函数依赖全为完全函数依赖。 函数依赖举例(续) 部分函数依赖: (S#,C#) CN (S#,C#)

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档