《关系数据库理论.ppt》由会员分享,可在线阅读,更多相关《关系数据库理论.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、关系数据库理论关系数据库理论现在学习的是第1页,共55页什么是好的数据库设计什么是好的数据库设计n准确反映客观世界的信息准确反映客观世界的信息n无过度的冗余无过度的冗余n无插入异常无插入异常n无修改复杂无修改复杂n无删除异常无删除异常现在学习的是第2页,共55页SnoSnameSagessexsdeptcnocnamecredit grade95001 张三25MCSC01数据库39595001 张三25MCSC02网络技术38095001 张三25MCSC03英语47695002 李四23FMAC01数据库38095002 李四23FMAC03英语480过度冗余过度冗余数据重复数据重复修改异
2、常修改异常修改代价大、可能导致数据不一致修改代价大、可能导致数据不一致删除异常删除异常部分信息的删除可能导致信息的丢失部分信息的删除可能导致信息的丢失插入异常插入异常必须有完整信息必须有完整信息一个不好的设计一个不好的设计现在学习的是第3页,共55页关系模式的形式化定义关系模式的形式化定义关系模式由五部分组成,即它是一个五元组:关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F)R: 关系名关系名U: 组成该关系的属性名集合组成该关系的属性名集合D: 属性组属性组U中属性所来自的域中属性所来自的域DOM: 属性向域的映象集合属性向域的映象集合F: 属性间数据的依赖关系集合属
3、性间数据的依赖关系集合现在学习的是第4页,共55页n关系模式关系模式R(U, D, DOM, F) 简化为一个三元组:简化为一个三元组: R(U, F)n当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时,时,r称为称为关系模式关系模式 R(U, F)的一个)的一个关系关系现在学习的是第5页,共55页码(续)码(续)n主属性与非主属性主属性与非主属性n包含在任何一个候选码中的属性包含在任何一个候选码中的属性 ,称为主属性,称为主属性n不包含在任何码中的属性称为非主属性不包含在任何码中的属性称为非主属性n全码全码n整个属性组是码,称为全码(整个属性组是码,称为全码(All-key) 现在学
4、习的是第6页,共55页例例1建立一个描述学校教务的数据库:建立一个描述学校教务的数据库:学生的学号(学生的学号(Sno)、所在系()、所在系(Sdept)系主任姓名(系主任姓名(Mname)、课程名()、课程名(Cname)成绩(成绩(Grade)单一单一的关系模式的关系模式 : Student U Sno, Sdept, Mname, Cname, Grade 现在学习的是第7页,共55页数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续) 属性组属性组U上的一组函数依赖上的一组函数依赖F: F Sno Sdept, Sdept Mname, (Sno, Cname) Grade S
5、noCnameSdeptMnameGrade现在学习的是第8页,共55页关系模式关系模式Student中存在的问题中存在的问题1. 1. 数据冗余太大数据冗余太大2. 2. 更新异常(更新异常(Update AnomaliesUpdate Anomalies)3. 3. 插入异常(插入异常(Insertion AnomaliesInsertion Anomalies)4. 4. 删除异常(删除异常(Deletion AnomaliesDeletion Anomalies)现在学习的是第9页,共55页数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)结论:结论:nStudent关系模式
6、不是一个好的模式。关系模式不是一个好的模式。n“好好”的模式:的模式:不会发生插入异常、删除异常、更新异常,不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少数据冗余应尽可能少原因:原因:由存在于模式中的由存在于模式中的某些数据依赖某些数据依赖引起的引起的解决方法:解决方法:通过通过分解分解关系模式来消除其中不合适关系模式来消除其中不合适 的数据依赖的数据依赖现在学习的是第10页,共55页分解关系模式分解关系模式n把这个单一模式分成把这个单一模式分成3个关系模式:个关系模式: S(Sno,Sdept,Sno Sdept); SC(Sno,Cno,Grade,(,(Sno,Cno) Gra
7、de); DEPT(Sdept,Mname,Sdept Mname)现在学习的是第11页,共55页数据依赖数据依赖n数据之间的相互关系数据之间的相互关系n函数依赖函数依赖(Functional Dependency,FD)n多值依赖多值依赖(Multivalued Dependency,MVD)n根据数据间的依赖关系来设计模式根据数据间的依赖关系来设计模式现在学习的是第12页,共55页n给定X的值,则Y的值也唯一确定,称 X 函数决定 Y或Y函数依赖于X,记作XY.n如果R的两个元组在属性A1, A2, , An上的值相等,则它们在另一个属性B上的值也相等,称A1, A2, , An函数决定B
8、或B函数依赖于A1, A2, , An,记作A1A2AnB.函数依赖函数依赖现在学习的是第13页,共55页nXY中X叫做决定因素.n平凡的函数依赖:XY但YX.否则称非平凡的函数依赖.n若XY且YX则记做XY.n完全函数依赖XY:Y不依赖于X的任何一个真子集.否则称部分函数依赖XY.n传递函数依赖:XY且YZ则XZ.术语和记号术语和记号FP现在学习的是第14页,共55页n如果关系模式R的属性组K满足条件KR,则K为R的码.即:nK函数决定该关系模式的所有其他属性n最小性:K的任何真子集都不具有上述性质nR可能有多个满足上面条件的候选码,一般指定一个作为主码.n包含在码中的属性叫做主属性,否则称
9、非主属性.函数依赖与码函数依赖与码F现在学习的是第15页,共55页n坏设计 - 不符合某种规范n好设计 - 必须符合规范n范式:关系模式的规范形式.n规范分成若干级别范式(Normal Forms)现在学习的是第16页,共55页n规范化:把不符合范式要求的关系模式转换成符合范式要求的关系模式n一个关系满足某个范式所规定的一系列条件时,它就属于该范式n低级范式可进一步规范化到高级范式: 1NF2NF3NFBCNF4NF范式现在学习的是第17页,共55页n若关系R的每一个属性只能取原子值(不可再分),R就属于第一范式, 记做 R1NF.n关系数据模型的最基本要求第一范式(1NF)现在学习的是第18
10、页,共55页2NF(续)(续)例例4 关系模式关系模式 S-L-C(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生住在同一个为学生住处,假设每个系的学生住在同一个地方地方n函数依赖包括:函数依赖包括: (Sno, Cno) F Grade Sno Sdept (Sno, Cno) P Sdept Sno Sloc (Sno, Cno) P Sloc Sdept Sloc现在学习的是第19页,共55页S-L-C不是一个好的关系模式(续)不是一个好的关系模式(续)(1) 插入异常插入异常(2) 删除异常删除异常(3) 数据冗余度大数据冗余度大(4)
11、 修改复杂修改复杂现在学习的是第20页,共55页S-L-C不是一个好的关系模式(续)不是一个好的关系模式(续)n原因原因 Sdept、 Sloc部分函数依赖于码。部分函数依赖于码。n解决方法解决方法 S-L-C分解为两个关系模式,以消除这些部分函数分解为两个关系模式,以消除这些部分函数依赖依赖 SC(Sno, Cno, Grade) S-L(Sno, Sdept, Sloc)现在学习的是第21页,共55页2NF(续)(续)函数依赖图:函数依赖图:SnoCnoGradeSCS-LSnoSdeptSlocv关系模式SC的码为(Sno,Cno)v关系模式S-L的码为Snov这样非主属性对码都是完全函
12、数依赖 现在学习的是第22页,共55页 2NF(续)(续)n2NF2NF的定义的定义定义定义6.6 6.6 若若R1NFR1NF,且每一个,且每一个非主属性非主属性完全完全函数依赖于码函数依赖于码,则,则R2NFR2NF。例:例:S-L-C(Sno, Sdept, Sloc, Cno, Grade) S-L-C(Sno, Sdept, Sloc, Cno, Grade) 1NF1NF S-L-C(Sno, Sdept, Sloc, Cno, Grade) S-L-C(Sno, Sdept, Sloc, Cno, Grade) 2NF 2NF SC SC(SnoSno, CnoCno, Grad
13、eGrade) 2NF2NF S-LS-L(SnoSno, SdeptSdept, SlocSloc) 2NF2NF现在学习的是第23页,共55页 6.2.5 3NFn3NF3NF的定义的定义定义定义6.7 6.7 关系模式关系模式RURF 中若不存在这样的码中若不存在这样的码X X、属性组、属性组Y Y及非主属性及非主属性Z Z(Z Z Y Y), , 使得使得X XY Y,Y YZ Z成立,成立, Y Y X X,则称则称RURF 3NF3NF。n若若R R3NF3NF,则每一个,则每一个非主属性非主属性既不部分依赖既不部分依赖于码于码也也不传递依赖不传递依赖于码。于码。 现在学习的是第2
14、4页,共55页3NF(续)(续)例:例:2NF2NF关系模式关系模式S-L(Sno, Sdept, Sloc)S-L(Sno, Sdept, Sloc)中中n函数依赖:函数依赖: SnoSdeptSnoSdept Sdept Sno Sdept Sno SdeptSloc SdeptSloc 可得:可得: SnoSlocSnoSloc,即,即S-LS-L中存在非主属性对码的传递函数依赖中存在非主属性对码的传递函数依赖,S-L S-L 3NF3NF传递现在学习的是第25页,共55页 3NF(续)(续)函数依赖图:函数依赖图:S-LSnoSdeptSloc现在学习的是第26页,共55页3NF(续)
15、(续)n解决方法解决方法 采用投影分解法,把采用投影分解法,把S-LS-L分解为两个关系模式,以消分解为两个关系模式,以消除传递函数依赖:除传递函数依赖: S-DS-D(SnoSno, SdeptSdept) D-LD-L(SdeptSdept,SlocSloc)S-DS-D的码为的码为SnoSno, D-LD-L的码为的码为SdeptSdept。n分解后的关系模式分解后的关系模式S-DS-D与与D-LD-L中不再存在传递依赖中不再存在传递依赖 现在学习的是第27页,共55页3NF(续)(续)S-D的码为的码为Sno, D-L的码为的码为SdeptSnoSdeptS-DSdeptSlocD-L
16、v S-L(Sno, Sdept, Sloc) 2NF S-L(Sno, Sdept, Sloc) 3NF S-D(Sno,Sdept) 3NFD-L(Sdept, Sloc) 3NF现在学习的是第28页,共55页 6.2.6 BC范式(范式(BCNF)n定义6.8 关系模式关系模式R1NF,若,若XY且且Y X时时X必含有码,则必含有码,则R BCNF。n等价于:每一个决定属性因素都包含码等价于:每一个决定属性因素都包含码现在学习的是第29页,共55页BCNF(续)(续)n若若RBCNF n所有非主属性对每一个码都是完全函数依赖所有非主属性对每一个码都是完全函数依赖n所有的主属性对每一个不包
17、含它的码,也是所有的主属性对每一个不包含它的码,也是完全函数依赖完全函数依赖n没有任何属性完全函数依赖于非码的任何一没有任何属性完全函数依赖于非码的任何一组属性组属性nR BCNF R 3NF充分不必要现在学习的是第30页,共55页BCNF(续)(续)例例5 关系模式关系模式C(Cno,Cname,Pcno)nC3NFnCBCNF例例6 关系模式关系模式S(Sno,Sname,Sdept,Sage)n假定假定S有两个码有两个码Sno,SnamenS3NF。nS BCNF现在学习的是第31页,共55页BCNF(续)(续)例例7关系模式关系模式SJP(S,J,P)n函数依赖:(函数依赖:(S,J)
18、P;(J,P)Sn(S,J)与()与(J,P)都可以作为候选码)都可以作为候选码,属性相交属性相交nSJP3NF,nSJPBCNF现在学习的是第32页,共55页 BCNF(续)(续)例例8在关系模式在关系模式STJ(S,T,J)中,)中,S表示学生表示学生,T表示教师,表示教师,J表示课程。表示课程。n函数依赖:函数依赖: (S,J)T,(S,T)J,TJn(S,J)和和(S,T)都是候选码都是候选码现在学习的是第33页,共55页 BCNF(续)(续) JSJTSTSTJ中的函数依赖中的函数依赖现在学习的是第34页,共55页BCNF(续)(续)nSTJ3NF n没有任何非主属性对码传递依赖或部
19、分依赖没有任何非主属性对码传递依赖或部分依赖 nSTJBCNFnT是决定因素,是决定因素,T不包含码不包含码现在学习的是第35页,共55页BCNF(续)(续)n解决方法:将解决方法:将STJ分解为二个关系模式:分解为二个关系模式: ST(S,T) BCNF, TJ(T,J) BCNF 没有没有任何属性任何属性对码的部分函数依赖和传递函数依赖对码的部分函数依赖和传递函数依赖SJSTTJTJ现在学习的是第36页,共55页3NF与与BCNF的关系的关系nR BCNF R 3NFn如果如果R3NF,且,且R只有一个候选码只有一个候选码 R BCNF R 3NF充分不必要充分必要现在学习的是第37页,共
20、55页6.2 规范化规范化6.2.1 函数依赖6.2.2 码6.2.3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结现在学习的是第38页,共55页6.2.7 多值依赖多值依赖例例9 学校中某一门课程由多个教师讲授学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每个教,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以员可以讲授多门课程,每种参考书可以供多门课程使用。供多门课程使用。现在学习的是第39页,共55页课课 程程 C教教 员员 T参参 考考 书书 B 物理物理数学数学 计算数学计算数学
21、李李 勇勇王王 军军 李李 勇勇张张 平平 张张 平平 周周 峰峰 普通物理学普通物理学光学原理光学原理 物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析. 多值依赖(续)多值依赖(续)v非规范化关系现在学习的是第40页,共55页普通物理学光学原理物理习题集普通物理学光学原理物理习题集数学分析微分方程高等代数数学分析微分方程高等代数李 勇李 勇李 勇王 军王 军王 军李 勇李 勇李 勇张 平张 平张 平 物 理物 理物 理物 理物 理物 理数 学数 学数 学数 学数 学数 学 参考书B教员T课程C多值依赖(续)多值依赖(续)v用二维表表示Teaching现在
22、学习的是第41页,共55页多值依赖(续)多值依赖(续)nTeachingBCNFnTeaching具有唯一候选码具有唯一候选码(C,T,B), 即全码即全码 现在学习的是第42页,共55页多值依赖(续)多值依赖(续) Teaching模式中存在的问题模式中存在的问题(1)数据冗余度大数据冗余度大 (2)插入操作复杂插入操作复杂(3) 删除操作复杂删除操作复杂(4) 修改操作复杂修改操作复杂存在多值依赖现在学习的是第43页,共55页多值依赖(续)多值依赖(续)n定义6.9 设设R(U)是一个属性集是一个属性集U上的一个关系模式,上的一个关系模式, X、 Y和和Z是是U的子集,并且的子集,并且ZU
23、XY。关系模式。关系模式R(U)中中多值多值依赖依赖 XY成立,当且仅当对成立,当且仅当对R(U)的的任一关系任一关系r,给定,给定的一对(的一对(x,z)值,有一组)值,有一组Y的值,这组值仅仅决定于的值,这组值仅仅决定于x值值而与而与z值无关值无关n例例 Teaching(C, T, B)现在学习的是第44页,共55页n对于关系R,若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。n不能部分依赖于码例如:sc(sno,sname,cno,grade)中sno,cnogradesnosname第二范式(2NF)PF现在学习的是第45页,共55页第二范式(2NF)snocnograde
24、sname完全依赖完全依赖非完全依赖非完全依赖现在学习的是第46页,共55页n对于关系R,若R2NF,且每个非主属性都不传递依赖于码,则R3NF。n例如:student(sno,sname,sdept,dept_head)snosname,sdept sdeptdept_head传递依赖:snodept_head第三范式(3NF)现在学习的是第47页,共55页第三范式(3NF)snosdeptsnamedept_head现在学习的是第48页,共55页n对于关系R,若R1NF,且对于所有非平凡的函数依赖XY,X必包含码,则RBCNF。n满足BCNF的关系模式中:n决定因素都包含码n决定因素可以是
25、超键n满足BCNF必满足3NF,但反之不然.Boyce Codd范式(BCNF)现在学习的是第49页,共55页n例如sct(s,c,t) /学生,课程,教师tc /假设每位教师只上一门课s,ct /假设学生只向一个老师学某门课s,tc /学生向某个老师只能学一门课Boyce Codd范式(BCNF)现在学习的是第50页,共55页sctstcBoyce/Codd范式(BCNF)sct3NF 但但 sct BCNF,因为因为t是决定因素是决定因素, 但不是码但不是码现在学习的是第51页,共55页多值依赖n例如:CTB(课程C,教员T,教科书B)n一门课可以有多个教员讲授n一门课可以有多本教科书供选
26、用n对教员和教科书的选择是相互独立的 C T B c1 t1 b1 c1 t2 b1 c1 t1 b2 c1 t2 b2现在学习的是第52页,共55页n多值依赖(MVD)n设R(U)是一个关系模式, X、Y、Z是U的子集,且Z=U-X-Y。R中多值依赖XY成立,当且仅当,对R的任意两个满足s.X=t.X的元组s,t,交换s,t的Y值,所得两个新元组必在R中.n即:对给定的X,对应的Y值与Z值无关.多值依赖现在学习的是第53页,共55页n对于关系R1NF,若对所有非平凡的多值依赖XY ,X都包含码,则R4NF。第四范式现在学习的是第54页,共55页n基本思想:一事一地(以码为核心)n规范化过程:规范化小结1NF2NF3NFBCNF4NF消除非主属性对码的部分FD消除非主属性对码的传递FD消除主属性对码的部分和传递FD消除非平凡且非FD的MVD消除决定因素非码的非平凡FD现在学习的是第55页,共55页