- 1、本文档共99页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第四章关系数据理论4.1关系模式的设计问题4.2关系模式的规范化4.3数据依赖的公理系统4.4关系模式的分解本章小结
4.1函数依赖一、问题——如何构造一个关系模式例:假设有学生关系模式nS(S#,SNAME,CLASS,C#,TNAME,TAGE,ADDRESS,GRADE)其中,S#—学号、SNAME—学生姓名、CLASS—班级、C#—课程号、TNAME—教师姓名、TAGE—教师年龄、ADDRESS—教师地址、GRADE—成绩。关系S存在以下问题:1.数据冗余度高。SNAME、CLASS、TNAME、TAGE、ADDRESS重复存储多次。
4.1函数依赖2.数据修改复杂。3.插入异常。插入异常是指应该插入到数据库中的数据不能执行插入操作的情形。关系S的主码:(S#,C#)从在S#、C#、和(S#,c#)上出现NULL值去分析。注意:当一个元组在主码的属性上部分或全部为空时,该元组不能插入到关系中。
4.1函数依赖4.删除异常。删除异常是指不应该删去的数据被删去的情形。例如:选修某门课的所有学生都退选时,删除相关元组,会丢失该课程老师的信息。§解决:关系模式分解(关系规范化)§分解为ST(S#,SNAME,CLASS)CT(C#,TNAME)TA(TNAME,TAGE,ADDRESS)SC(S#,C#,GRADE)
4.1函数依赖二、函数依赖functionaldependency,abbr.FD设:R(A1,A2,…An)=R(U)nX,Y,Z为U的不同子集n属性全集定义4.1:n①函数依赖是完整性约束的一种,它推广了关键词的概念。Ift1.X=t2.X,thent1.Y=t2.Y②函数依赖:若R的任意关系有:对X中的每个属性值,在Y中都有惟一的值与之对应,则称Y函数依赖于X,记作X?Y。
4.1函数依赖例:指出下列关系R中的函数依赖。nABCDa1a1a1a2b1b1b2b1c1c1c2c3d1d2d1d1FD:AB-C、A→C、C→A、AB→D?InsertintoRvalues(a1,b1,c2,d1)FD=keyconstraint?nnn
4.1函数依赖函数依赖与属性间的关系有:若X,Y是1—1关系,n则存在X?Y或Y?X。如学号与借书证号若X,Y是m—1关系,n则存在X?Y但Y+X。如学号与姓名若X,Y是m—n关系,n则X,Y间不存在函数依赖关系。如姓名与课程CF:实体间的联系NOTE:函数依赖的方向性
4.1函数依赖例试指出学生关系S(S#,SNAME,CLASS,ADDRESS,GRADE)中存在的函数依赖关系。nS#→SNAME(每个学号只能有一个学生姓名)S#→CLASS(每个学号只能有一个班级)C#→TNAME(设每门课程只有一个教师任教,而一个教师可教多门课程,见CT表)TNAME→TAGE(每个教师只能有一个年龄)TNAME→ADDRESS(每个教师只能有一个地址)(S#,C#)→GRADE(每个学生学习一门课只能有一个成绩)(S#,C#)→SNAME、(S#,C#)→CLASS、(S#,C#)→C#、(S#,C#)→TNAME、(S#,C#)→TAGE、(S#,C#)→ADDRESS
4.1函数依赖三、函数依赖的分类§X?Y,但Y不包含于X则称X是非平凡的函数依赖。§X?Y,但Y?X则称X是平凡的函数依赖。§若X?Y,则X叫做决定因素。§若X?Y,Y?X,则记作:X——Y。定义4.2:在R(U)中,X,Y,Z为U的不同子集。完全函数依赖:是指X?Y,且对任何X的真子集X’,n都有X’+Y,记作:XFY。部分函数依赖:是指X?Y,且存在X的真子集X’,n有X’-Y,记作:XPY。定义4.3:在R(U)中传递函数依赖:是指若X?Y(Y不包含于X),Y+X,n而Y?Z。记作:XTZ。
4.1函数依赖左部为单属性的函数依赖一定是完全函数依赖。左部为多属性的函数依赖,如何判断其是否为完全函数依赖?方法:取真子集,看其能否决定右部属性。nn例:试指出学生关系S中存在的完全函数依赖和部分函数依赖。S#→SNAME,S#→CLASS,TNAME→TAGE,nTNAME→ADDRESS,C#→TNAME都是完全函数依赖。(S#,C#)→GRADEC#+GRADE。是一个完全函数依赖,因为Sn
4.1函数依赖(S#,C#)→SNAME,(S#,C#)→CLASS,n(S#,C#)→TNAME,(S#,C#)→TAGE,(S#,C#)→ADDRESS都是部分函数依赖,因为S#→SNAME,S#→CLASS,C#→TNAME,C#→T
文档评论(0)