关系模式分解.ppt

关系模式分解.ppt

ID:54367250

大小:1.39 MB

页数:99页

时间:2020-05-01

关系模式分解.ppt_第1页
关系模式分解.ppt_第2页
关系模式分解.ppt_第3页
关系模式分解.ppt_第4页
关系模式分解.ppt_第5页
资源描述:

《关系模式分解.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、4.1关系模式的设计问题4.2关系模式的规范化4.3数据依赖的公理系统4.4关系模式的分解第四章关系数据理论本章小结4.1函数依赖一、问题——如何构造一个关系模式例:假设有学生关系模式其中,S#—学号、SNAME—学生姓名、CLASS—班级、C#—课程号、TNAME—教师姓名、TAGE—教师年龄、ADDRESS—教师地址、GRADE—成绩。S(S#,SNAME,CLASS,C#,TNAME,TAGE,ADDRESS,GRADE)关系S存在以下问题:1.数据冗余度高。SNAME、CLASS、TNAME、TAG

2、E、ADDRESS重复存储多次。4.1函数依赖2.数据修改复杂。3.插入异常。插入异常是指应该插入到数据库中的数据不能执行插入操作的情形。关系S的主码:(S#,C#)从在S#、C#、和(S#,c#)上出现NULL值去分析。注意:当一个元组在主码的属性上部分或全部为空时,该元组不能插入到关系中。4.1函数依赖4.删除异常。删除异常是指不应该删去的数据被删去的情形。例如:选修某门课的所有学生都退选时,删除相关元组,会丢失该课程老师的信息。解决:关系模式分解(关系规范化)分解为ST(S#,SNAME,CLASS)

3、CT(C#,TNAME)TA(TNAME,TAGE,ADDRESS)SC(S#,C#,GRADE)4.1函数依赖二、函数依赖functionaldependency,abbr.FD设:R(A1,A2,…An)=R(U)X,Y,Z为U的不同子集定义4.1:①函数依赖是完整性约束的一种,它推广了关键词的概念。Ift1.X=t2.X,thent1.Y=t2.Y②函数依赖:若R的任意关系有:对X中的每个属性值,在Y中都有惟一的值与之对应,则称Y函数依赖于X,记作XY。属性全集4.1函数依赖例:指出下列关系R中的函

4、数依赖。ABCDa1b1c1d1a1b1c1d2a1b2c2d1a2b1c3d1FD:AB->C、A→C、C→A、AB→D?InsertintoRvalues(a1,b1,c2,d1)FD=keyconstraint?4.1函数依赖函数依赖与属性间的关系有:若X,Y是1—1关系,则存在XY或YX。如学号与借书证号若X,Y是m—1关系,则存在XY但Y+>X。如学号与姓名若X,Y是m—n关系,则X,Y间不存在函数依赖关系。如姓名与课程CF:实体间的联系NOTE:函数依赖的方向性4.1函数依赖例试指出学生关

5、系S(S#,SNAME,CLASS,C#,TNAME,TAGE,ADDRESS,GRADE)中存在的函数依赖关系。S#→SNAME(每个学号只能有一个学生姓名)S#→CLASS(每个学号只能有一个班级)C#→TNAME(设每门课程只有一个教师任教,而一个教师可教多门课程,见CT表)TNAME→TAGE(每个教师只能有一个年龄)TNAME→ADDRESS(每个教师只能有一个地址)(S#,C#)→GRADE(每个学生学习一门课只能有一个成绩)(S#,C#)→SNAME、(S#,C#)→CLASS、(S#,C#)

6、→C#、(S#,C#)→TNAME、(S#,C#)→TAGE、(S#,C#)→ADDRESS4.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’,都有X’+>Y,记作:XF>Y。部分函数依赖:是指XY,且存在X的真子集X’,有X’->Y,记作:XP>Y。定义4.3:在R(U

7、)中传递函数依赖:是指若XY(Y不包含于X),Y+>X,而YZ。记作:XT>Z。4.1函数依赖左部为单属性的函数依赖一定是完全函数依赖。左部为多属性的函数依赖,如何判断其是否为完全函数依赖?方法:取真子集,看其能否决定右部属性。例:试指出学生关系S中存在的完全函数依赖和部分函数依赖。S#→SNAME,S#→CLASS,TNAME→TAGE,TNAME→ADDRESS,C#→TNAME都是完全函数依赖。(S#,C#)→GRADE是一个完全函数依赖,因为S#+>GRADE,C#+>GRADE。4.1函数依赖

8、例:试指出学生关系S中存在的传递函数依赖。解:因为C#→TNAME,TNAME+>C#,TNAME→TAGE,所以C#→TAGE是一个传递函数依赖。类似地,C#→ADDRESS也是一个传递函数依赖。(S#,C#)→SNAME,(S#,C#)→CLASS,(S#,C#)→TNAME,(S#,C#)→TAGE,(S#,C#)→ADDRESS都是部分函数依赖,因为S#→SNAME,S#→CLASS,C#→TNAME,C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。