《数据库系统概论》第5版-王珊-第6章.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

AnIntroductiontoDatabaseSystem数据库系统概论AnIntroductiontoDatabaseSystem第六章关系数据理论中国人民大学信息学院AnIntroductiontoDatabaseSystem基于某个数据库管理系统设计数据库,如何基于数据库系统编程第6章关系数据理论第7章数据库设计第8章数据库编程第二篇设计与应用开发篇AnIntroductiontoDatabaseSystem第六章关系数据理论6.1问题的提出6.2规范化6.3数据依赖的公理系统*6.4模式的分解6.5小结AnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem6.1问题的提出关系数据库逻辑设计针对具体问题,如何构造一个适合于它的数据模式数据库逻辑设计的工具──关系数据库的规范化理论AnIntroductiontoDatabaseSystem*问题的提出(续)关系模式由五部分组成,是一个五元组:R(U,D,DOM,F)关系名R是符号化的元组语义U为一组属性D为属性组U中的属性所来自的域DOM为属性到域的映射F为属性组U上的一组数据依赖AnIntroductiontoDatabaseSystem问题的提出(续)由于D、DOM与模式设计关系不大,因此在本章中把关系模式看作一个三元组:RU,F当且仅当U上的一个关系r满足F时,r称为关系模式RU,F的一个关系作为二维表,关系要符合一个最基本的条件:每个分量必须是不可分开的数据项。满足了这个条件的关系模式就属于第一范式(1NF)AnIntroductiontoDatabaseSystem*问题的提出(续)数据依赖是一个关系内部属性与属性之间的一种约束关系通过属性间值的相等与否体现出来的数据间相互联系是现实世界属性间相互联系的抽象是数据内在的性质是语义的体现AnIntroductiontoDatabaseSystem*问题的提出(续)数据依赖的主要类型函数依赖(FunctionalDependency,简记为FD)多值依赖(Multi-ValuedDependency,简记为MVD)AnIntroductiontoDatabaseSystem*问题的提出(续)函数依赖普遍存在于现实生活中描述一个学生关系,可以有学号、姓名、系名等属性。一个学号只对应一个学生,一个学生只在一个系中学习“学号”值确定后,学生的姓名及所在系的值就被唯一确定。Sname=f(Sno),Sdept=f(Sno)即Sno函数决定SnameSno函数决定Sdept记作Sno→Sname,Sno→SdeptAnIntroductiontoDatabaseSystem*问题的提出(续)[例6.1]建立一个描述学校教务的数据库。涉及的对象包括:学生的学号(Sno)所在系(Sdept)系主任姓名(Mname)课程号(Cno)成绩(Grade)AnIntroductiontoDatabaseSystem*问题的提出(续)假设学校教务的数据库模式用一个单一的关系模式Student来表示,则该关系模式的属性集合为:U={Sno,Sdept,Mname,Cno,Grade}现实世界的已知事实(语义):一个系有若干学生,但一个学生只属于一个系;一个系只有一名(正职)负责人;一个学生可以选修多门课程,每门课程有若干学生选修;每个学生学习每一门课程有一个成绩。AnIntroductiontoDatabaseSystem*问题的提出(续)由此可得到属性组U上的一组函数依赖F:F={Sno→Sdept,Sdept→Mname,(Sno,Cno)→Grade}SnoCnoSdeptMnameGradeAnIntroductiontoDatabaseSystem*问题的提出(续)关系模式StudentU,F中存在的问题:(1)数据冗余浪费大量的存储空间每一个系主任的姓名重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同。AnIntroductiontoDatabaseSystem*问题的提出(续)(2)更新异常(UpdateAnomalies)数据冗余,更新数据时,维护数据完整性代价大。某系更换系主任后,必须修改与该系学生有关的每一个元组。AnIntroductiontoDatabaseSystem*问题的提出(续)(3)插入异常(InsertionAnomalies)如果一个系刚成立,尚无学生,则无法把这个系及其系主任的信息存入数据库。AnIntroductiontoDatabaseSystem*问题的提出(续)(4)删除异常(DeletionAnomalies)如果某个系的学生全部毕业了,则在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。AnIntroductiontoDatabaseSystem*问题的提出(续)结论Student关系模式不是一个好的模式。一个“好”的模式应当不会发生插入异常、删除异常和更新异常,数据冗余应尽可能少。原因由存在于模式中的某些数据依赖引起的。解决方法用规范化理论改造关系模式来消除其中不合适的数据依赖AnIntroductiontoDatabaseSystem*问题的提出(续)把这个单一的模式分成三个关系模式:S(Sno,Sdept,Sno→Sdept);SC(Sno,Cno,Grade,(Sno,Cno)→Grade);DEPT(Sdept,Mname,Sdept→Mname);这三个模式都不会发生插入异常、删除异常的问题,数据的冗余也得到了控制。AnIntroductiontoDatabaseSystem第六章关系数据理论6.1问题的提出6.2规范化6.3数据依赖的公理系统*6.4模式的分解6.5小结AnIntroductiontoDatabaseSystem6.2规范化6.2.1函数依赖6.2.2码6.2.3范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖6.2.84NF6.2.9规范化小结AnIntroductiontoDatabaseSystem6.2.1函数依赖1.函数依赖2.平凡函数依赖与非平凡函数依赖3.完全函数依赖与部分函数依赖4.传递函数依赖AnIntroductiontoDatabaseSystem*1.函数依赖定义6.1设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。AnIntroductiontoDatabaseSystem函数依赖(续)[例]Student(Sno,Sname,Ssex,Sage,Sdept),假设不允许重名,则有:Sno→Ssex,Sno→SageSno→Sdept,Sno←→SnameSname→Ssex,Sname→SageSname→Sdept但Ssex→Sage,Ssex→Sdept若X→Y,并且Y→X,则记为X←→Y。若Y不函数依赖于X,则记为X→Y。AnIntroductiontoDatabaseSystem函数依赖(续)SnoSnameSsexSageSdeptS1张三男20计算机系S1李四女21自动化系S3王五男20计算机系S4赵六男21计算机系S5田七男20计算机系...............违背了Sno→SnameAnIntroductiontoDatabaseSystem函数依赖(续)由下面的关系表,能否得出Sno→SnameSnoSnameSsexSageSdeptS1张三男20计算机系S2李四女21自动化系S3王五男20计算机系S4赵六男21计算机系S5田七男20计算机系...............函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。AnIntroductiontoDatabaseSystem*函数依赖(续)函数依赖是语义范畴的概念,只能根据数据的语义来确定一个函数依赖。例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立AnIntroductiontoDatabaseSystem*2.平凡函数依赖与非平凡函数依赖X→Y,但Y⊈X则称X→Y是非平凡的函数依赖。X→Y,但Y⊆X则称X→Y是平凡的函数依赖。对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义。若不特别声明,我们总是讨论非平凡函数依赖。AnIntroductiontoDatabaseSystem*平凡函数依赖与非平凡函数依赖(续)若X→Y,则X称为这个函数依赖的决定因素(Determinant)。若X→Y,Y→X,则记作X←→Y。若Y不函数依赖于X,则记作X↛Y。AnIntroductiontoDatabaseSystem*3.完全函数依赖与部分函数依赖定义6.2在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’↛Y,则称Y对X完全函数依赖,记作X→Y。若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X→YFPAnIntroductiontoDatabaseSystem*完全函数依赖与部分函数依赖(续)[例]在关系SC(Sno,Cno,Grade)中,有:由于:Sno↛Grade,Cno↛Grade,因此:(Sno,Cno)→Grade(Sno,Cno)→Sno(Sno,Cno)→CnoFPPAnIntroductiontoDatabaseSystem*4.传递函数依赖定义6.3在R(U)中,如果X→Y(Y⊈X),Y↛X,Y→Z,Z⊈Y,则称Z对X传递函数依赖(transitivefunctionaldependency)。记为:X→Z。注:如果Y→X,即X←→Y,则Z直接依赖于X,而不是传递函数依赖。[例]在关系Std(Sno,Sdept,Mname)中,有:Sno→Sdept,Sdept→Mname,Mname传递函数依赖于Sno传递AnIntroductiontoDatabaseSystem6.2规范化6.2.1函数依赖6.2.2码6.2.3范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖6.2.84NF6.2.9规范化小结AnIntroductiontoDatabaseSystem*6.2.2码定义6.4设K为RU,F中的属性或属性组合。若K→U,则K称为R的一个候选码(CandidateKey)。如果U部分函数依赖于K,即K→U,则K称为超码(Surpkey)。候选码是最小的超码,即K的任意一个真子集都不是候选码。若关系模式R有多个候选码,则选定其中的一个做为主码(Primarykey)。FPAnIntroductiontoDatabaseSystem*码(续)主属性与非主属性包含在任何一个候选码中的属性,称为主属性(Primeattribute)不包含在任何码中的属性称为非主属性(Nonprimeattribute)或非码属性(Non-keyattribute)全码:整个属性组是码,称为全码(All-key)AnIntroductiontoDatabaseSystem*码(续)[例6.2]S(Sno,Sdept,Sage),单个属性Sno是码SC(Sno,Cno,Grade)中,(Sno,Cno)是码[例6.3]R(P,W,A)P:演奏者W:作品A:听众一个演奏者可以演奏多个作品某一作品可被多个演奏者演奏听众可以欣赏不同演奏者的不同作品码为(P,W,A),即All-KeyAnIntroductiontoDatabaseSystem*码(续)定义6.5关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码(Foreignkey

1 / 123
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功