资源描述:
《《数据库系统原理》ppt电子课件教案第四章关系数据库设计理论》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章关系数据库设计理论关系数据库模式整个数据库某关系的结构某关系的实例关系模式的设计问题关系模式设计不规范会带来一系列的问题数据冗余更新异常插入异常删除异常示例关系模式R(Tname,Addr,C#,Cname)一个教师只有一个地址(户口所在地)一个教师可教多门课程一门课程只有一个任课教师因此R的主码是(C#)R的一个实例TnameAddrC#CnameT1A1C1N1T1A1C2N2T1A1C3N3T2A2C4N4T2A2C5N5T3A3C6N61、问题(1):数据冗余教师T1教了三门课程,他的地址被重复存储了2次TnameAddrC#CnameT1A1C1N1T1A1C
2、2N2T1A1C3N3T2A2C4N4T2A2C5N5T3A3C6N62、问题(2):更新异常如果T1的地址变了,则需要改变3个元组的地址;若有一个未更改,就会出现数据不一致。但DBMS无法获知这种不一致TnameAddrC#CnameT1A1C1N1T1A1C2N2T1A1C3N3T2A2C4N4T2A2C5N5T3A3C6N63、问题(3):插入异常如果要增加一名教师,但他还未带课,则C#和Cname为空,但由于C#是主码,为空违反了实体完整性,所以这名教师将无法插入到数据库中TnameAddrC#CnameT1A1C1N1T1A1C2N2T1A1C3N3T2A2C4N4T2
3、A2C5N5T3A3C6N64、问题(4):删除异常如果教师T3现在不带课了,则需将T3的元组删去,但同时也把他的姓名和地址信息删掉了TnameAddrC#CnameT1A1C1N1T1A1C2N2T1A1C3N3T2A2C4N4T2A2C5N5T3A3C6N6问题:麻烦!麻烦!!好麻烦!!!唉,剪不断,理还乱5、如何解决?方法:模式分解方法1:R分解为R1(Tname,Addr)R2(C#,Cname)方法2R1(Tname,Addr,C#)R2(C#,Cname)方法3R1(Tname,Addr)R2(Tname,C#,Cname)到底什么样的模式才最佳?怎么分解才能达到要求
4、?标准是什么?如何实现?——本章内容授课信息丢失了R1中问题依然存在基本解决问题,但又带来联接查询代价解决之道:分解!分解!!再分解!!!哇,原来生活可以如此简单4.1数据依赖数据依赖是指数据之间存在的各种联系。数据依赖中最重要的有:函数依赖(FD,functionaldependency)多值依赖(MVD,multivalueddependency)1.关系模式中的数据依赖1)关系=关系模式+关系实例2)关系是属性的笛卡尔积的一个子集3)描述关系模式的五元组R(U,D,DOM,F)4)F:属性间数据的依赖关系集合,描述关系的元组语义5)描述关系模式的简化三元组R(U,F)2.数
5、据依赖对关系模式的影响数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是语义的体现数据依赖中最基本的是函数依赖例1学生关系Student(Sno,Sname,Sdept)一个学号只对应一个学生,一个学生只在一个系一旦学号确定,姓名和所在系也就唯一地确定下来了属性间的这种依赖关系类似于数学中的函数Sno函数决定Sname和Sdept;Sname和Sdept函数依赖于Sno,记作Sno→Sname,Sno→Sdept例2建立一个描述学校的数据库,假设由单一关系模式组成Student(Sno,Sdept,Mname,Cname,Grade)属性间函数依赖:F={S
6、no→Sdept,Sdept→Mname,(Sno,Cname)→Grade}GradeSnoCnameSdeptMname存在问题:数据冗余度大更新异常插入异常删除异常3.函数依赖定义:设R(U)是一关系模式,U是R的属性集合,X,Y是U的子集,当任何时刻R中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称X函数决定Y或Y函数依赖于X,记作X→Y。若X→Y,X叫做决定因素(决定属性集)。若X→Y,Y→X,则记作X←→Y。若Y不函数依赖于X,则X!→Y。函数依赖是语义范畴的概念,设计者可对现实世界作强制规定。函数依赖是指R的所有关系实例均要满足的约束条件函数依赖
7、与属性间的联系类型有关1)一对一联系:X←→Y2)多对一联系:X→Y3)多对多联系:不存在依赖关系4)可从属性间的联系类型来分析属性间的函数依赖例3学生关系Student(Sno,Sname,Sage,Ssex,Sdept)则有Sno决定函数(Sname,Sage,Ssex,Sdept)函数(Sname,Sage,Ssex,Sdept)依赖于Sno记为:Sno→(Sname,Sage,Ssex,Sdept)4.平凡函数依赖与非平凡函数依赖定义:在关系模式R(U)中,对于U的子集X