《关系数据理论S》PPT课件.ppt

上传人:s9****2 文档编号:570633052 上传时间:2024-08-05 格式:PPT 页数:82 大小:577.01KB
返回 下载 相关 举报
《关系数据理论S》PPT课件.ppt_第1页
第1页 / 共82页
《关系数据理论S》PPT课件.ppt_第2页
第2页 / 共82页
《关系数据理论S》PPT课件.ppt_第3页
第3页 / 共82页
《关系数据理论S》PPT课件.ppt_第4页
第4页 / 共82页
《关系数据理论S》PPT课件.ppt_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《《关系数据理论S》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《关系数据理论S》PPT课件.ppt(82页珍藏版)》请在金锄头文库上搜索。

1、AnIntroductiontoDatabaseSystems数据库系统概论 An Introduction to Database System1AnIntroductiontoDatabaseSystems第六章第六章 关系数据理论关系数据理论2AnIntroductiontoDatabaseSystems第六章第六章关系数据理论关系数据理论6.1问题的提出问题的提出6.2规范化规范化6.3小结小结3AnIntroductiontoDatabaseSystems6.1问题的提出问题的提出关系数据库关系数据库逻辑设计逻辑设计针针对对具具体体问问题题,如如何何构构造造一一个个适适合合于于它它的

2、的数数据据模模式式,即即应应该该构构造造几几个个关关系系模式,每个关系由哪些属性组成等。模式,每个关系由哪些属性组成等。数数据据库库逻逻辑辑设设计计的的工工具具关关系系数数据据库库的规范化理论。的规范化理论。4AnIntroductiontoDatabaseSystems一、概念回顾一、概念回顾二、关系模式的形式化定义二、关系模式的形式化定义三、什么是数据依赖三、什么是数据依赖四、数据依赖对关系模式影响四、数据依赖对关系模式影响6.1问题的提出问题的提出5AnIntroductiontoDatabaseSystems一、概念回顾一、概念回顾关系关系:描述实体、属性、实体间的联系。:描述实体、属

3、性、实体间的联系。v从形式上看,它是一张从形式上看,它是一张二维表二维表,是所涉及属性的笛卡,是所涉及属性的笛卡尔积的一个子集。尔积的一个子集。关系模式关系模式:用来定义(描述)关系。:用来定义(描述)关系。关系数据库关系数据库:基于关系模型的数据库,利用关系来描述:基于关系模型的数据库,利用关系来描述现实世界。现实世界。v从形式上看,它由一组关系组成。从形式上看,它由一组关系组成。关系数据库的模式关系数据库的模式:定义这组关系的关系模式的全体。:定义这组关系的关系模式的全体。6AnIntroductiontoDatabaseSystems二、关系模式的形式化定义二、关系模式的形式化定义在本章

4、中,把关系模式看成是一个三元组:在本章中,把关系模式看成是一个三元组:R(U,F)R:关系名关系名U:组成该关系的属性名集合组成该关系的属性名集合F:属性间数据的依赖关系集合属性间数据的依赖关系集合当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时,时,r称为称为关系模式关系模式R(U,F)的一个的一个关系关系7AnIntroductiontoDatabaseSystems三、什么是数据依赖三、什么是数据依赖完整性约束的表现形式完整性约束的表现形式限定属性取值范围限定属性取值范围:例如学生成绩必须在:例如学生成绩必须在0-100之间。之间。数据依赖是一个数据依赖是一个关系内部属性与属性之

5、间的约关系内部属性与属性之间的约束关系束关系。定义属性。定义属性值值间的相互关连(主要体现间的相互关连(主要体现于值的于值的相等与否相等与否),它是数据库模式设计的关),它是数据库模式设计的关键。键。8AnIntroductiontoDatabaseSystems四、四、数据依赖对关系模式的影响数据依赖对关系模式的影响例:例:描述学校的数据库:描述学校的数据库:学生的学号(学生的学号(Sno)、)、所在系(所在系(Sdept)系主任姓名(系主任姓名(Mname)、)、课程号(课程号(Cno)成绩(成绩(Grade)单一单一的关系模式的关系模式:StudentU Sno, Sdept, Mnam

6、e, Cno, Grade9AnIntroductiontoDatabaseSystems数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)学校数据库的学校数据库的语义语义:一个系有若干学生,一个系有若干学生,一个学生只属于一个系;一个学生只属于一个系;一个系只有一名主任;一个系只有一名主任;一个学生可以选修多门课程,一个学生可以选修多门课程,每门课程有若干每门课程有若干学生选修;学生选修;每个学生所学的每门课程都有一个成绩。每个学生所学的每门课程都有一个成绩。于是得到属性组于是得到属性组U上的一组函数依赖上的一组函数依赖F:FSnoSdept,SdeptMname,(Sno,Cno

7、)Grade10AnIntroductiontoDatabaseSystems数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)于是得到属性组于是得到属性组U上的一组函数依赖上的一组函数依赖F:FSnoSdept,SdeptMname,(Sno,Cno)Grade SnoCnoSdeptMnameGrade主码为(sno,cno)11AnIntroductiontoDatabaseSystems数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)80C5M3MAS380C4M2ISS270C3M1CSS190C2M1CSS180C1M1CSS1Grade CnoMnameSd

8、eptSno图图关系模式关系模式Student的实例的实例12AnIntroductiontoDatabaseSystems关系模式关系模式Student中存在的问题中存在的问题数据数据冗余太大:冗余太大:浪费大量的存储空间浪费大量的存储空间例:每一个系主任的姓名重复出现例:每一个系主任的姓名重复出现更新异常(修改复杂)更新异常(修改复杂)例:某系更换系主任后,系统必须修改例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组与该系学生有关的每一个元组13AnIntroductiontoDatabaseSystems关系模式关系模式Student中存在的问题中存在的问题插入异常:该插的数

9、据插不进去插入异常:该插的数据插不进去例,如果一个系刚成立,尚无学生,主关键字例,如果一个系刚成立,尚无学生,主关键字为空,我们就无法把这个系及其系主任的信息为空,我们就无法把这个系及其系主任的信息存入数据库。存入数据库。删除异常:不该删除的数据不得不删删除异常:不该删除的数据不得不删例,如果某个系的学生全部毕业了,例,如果某个系的学生全部毕业了,我们在删我们在删除该系学生信息的同时,把这个系及其系主任除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。的信息也丢掉了。14AnIntroductiontoDatabaseSystems数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(

10、续)80C5M3MAS380C4M2ISS270C3M1CSS190C2M1CSS180C1M1CSS1Grade CnoMnameSdeptSno图图关系模式关系模式Student的实例的实例15AnIntroductiontoDatabaseSystems数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)结论:结论:Student关系模式不是一个好的模式。关系模式不是一个好的模式。“好好”的模式的模式:不会发生插入异常、删除异:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。常、更新异常,数据冗余应尽可能少。原因:原因:由于模式中存在的由于模式中存在的某些数据依赖某些数

11、据依赖引起的引起的解决方法:解决方法:通过通过分解分解关系模式来消除其中不合关系模式来消除其中不合适的数据依赖。适的数据依赖。16AnIntroductiontoDatabaseSystems关系模式关系模式Student分解成三个关系模式:分解成三个关系模式:S(Sno,Sdept,SnoSdept)SG(Sno,Cno,Grade,(Sno,Cno)Grade)DEPT(Sdept,Mname,SdeptMname)这三个模式都不会发生插入异常、删除异常的毛病,这三个模式都不会发生插入异常、删除异常的毛病,数据的冗余也得到了控制。数据的冗余也得到了控制。数据依赖对关系模式的影响(续)数据依

12、赖对关系模式的影响(续)17AnIntroductiontoDatabaseSystems6.2规范化规范化规范化理论规范化理论正是用来改造关系模式,正是用来改造关系模式,通过通过分解分解关系模式来消除其中不合适关系模式来消除其中不合适的数据依赖,以解决插入异常、删除的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。异常、更新异常和数据冗余问题。18AnIntroductiontoDatabaseSystems6.2.1函数依赖函数依赖一、函数依赖一、函数依赖二、平凡函数依赖与非平凡函数依赖二、平凡函数依赖与非平凡函数依赖三、完全函数依赖与部分函数依赖三、完全函数依赖与部分函数依赖

13、四、传递函数依赖四、传递函数依赖19AnIntroductiontoDatabaseSystems一、函数依赖一、函数依赖回顾:回顾:函数函数熟悉的概念。熟悉的概念。Y=f(x):x和和Y之之间间数数量量上上的的对对应应关关系系。给给定定x值值,Y值值与与之之对对应应。称称x函函数数决决定定Y,或或Y函函数数依赖于依赖于x。在在关关系系数数据据库库中中讨讨论论函函数数或或函函数数依依赖赖注注重重的的是是语义语义上的关系。上的关系。 如:省如:省=f(城市城市) 20AnIntroductiontoDatabaseSystems一、函数依赖一、函数依赖定义定义6.1设设R(U)是一个属性集是一个

14、属性集U上的关系上的关系模式,模式,X和和Y是是U的子集。若对于的子集。若对于R(U)的的任任意意一个可能的关系一个可能的关系r,r中中不可能存在不可能存在两个两个元组在元组在X上的属性值相等,上的属性值相等,而在而在Y上的属性上的属性值不等,值不等,则称则称“X函数确定函数确定Y”或或“Y函数函数依赖于依赖于X”,记作记作XY。21AnIntroductiontoDatabaseSystems说明:说明:1.函数依赖是指函数依赖是指R的的所有关系实例所有关系实例均要均要满足满足的约束条件。的约束条件。2.函数依赖是函数依赖是语义范畴语义范畴的概念。只能的概念。只能根据数据的语义根据数据的语义

15、来确来确定函数依赖。定函数依赖。例如例如“姓名姓名年龄年龄”这个函数依赖只有在不允许有同名这个函数依赖只有在不允许有同名人的条件下成立人的条件下成立3.数据库设计者可以对现实世界作数据库设计者可以对现实世界作强制的规定强制的规定。例如规定。例如规定不允许同名人出现,函数依赖不允许同名人出现,函数依赖“姓名姓名年龄年龄”成立。所成立。所插入的元组必须满足规定的函数依赖,若发现有同名人插入的元组必须满足规定的函数依赖,若发现有同名人存在,存在,则拒绝装入该元组。则拒绝装入该元组。22AnIntroductiontoDatabaseSystems函数依赖(续)函数依赖(续)例例1:Student(S

16、no,Sname,Ssex,Sage,Sdept)假设不允许重名假设不允许重名,则有,则有:SnoSsex,SnoSage,SnoSdept,SnoSname,SnameSsex,SnameSageSnameSdept若若XY,并且并且YX,则记为则记为XY。23AnIntroductiontoDatabaseSystems函数依赖(续)函数依赖(续)例例2:有一个关于学生选课、教师任课的关系模式:有一个关于学生选课、教师任课的关系模式:R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE)属性分别表示学生学号、姓名、选修课程的课程号、成绩、课属性分别表示学生学号、姓名、选

17、修课程的课程号、成绩、课程名、任课教师姓名和教师年龄。程名、任课教师姓名和教师年龄。如果规定,每个学号只能有一个学生姓名,每个课程号只能决如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一门课程,那么可写成下列定一门课程,那么可写成下列FD形式:形式:S#SNAMEC#CNAME每个学生每学一门课程,有一个成绩,那么可写出下列每个学生每学一门课程,有一个成绩,那么可写出下列FD:(S#,C#)GRADE还可以写出其他一些还可以写出其他一些FD:C#(CNAME,TNAME,TAGE)TNAMETAGE24AnIntroductiontoDatabaseSystems二、平凡函数依赖与非

18、平凡函数依赖二、平凡函数依赖与非平凡函数依赖在关系模式在关系模式R(U)中,对于中,对于U的子集的子集X和和Y,如果如果XY,但但Y X,则称则称XY是是非平凡的函数依赖非平凡的函数依赖。若若XY,但但Y X,则称则称XY是是平凡的函数依赖平凡的函数依赖例:例:在关系在关系SC(Sno,Cno,Grade)中,中,非平凡函数依赖:非平凡函数依赖:(Sno,Cno)Grade平凡函数依赖:平凡函数依赖:(Sno,Cno)Sno(Sno,Cno)Cno我们总是讨论非平凡函数依赖。我们总是讨论非平凡函数依赖。25AnIntroductiontoDatabaseSystems三、完全函数依赖与部分函数

19、依赖三、完全函数依赖与部分函数依赖定义定义6.2在关系模式在关系模式R(U)中,如果中,如果XY,并且并且对于对于X的任何一个真子集的任何一个真子集X,都有都有XY,则称则称Y完全函数依赖于完全函数依赖于X,记作记作XY。若若XY,但但Y不完全函数依赖于不完全函数依赖于X,则称则称Y部部分函数依赖于分函数依赖于X,记作记作XY。FP26AnIntroductiontoDatabaseSystems完全函数依赖与部分函数依赖(续)完全函数依赖与部分函数依赖(续)例例:在关系在关系SC(Sno,Cno,Grade)中,中,由于:由于:SnoGrade,CnoGrade,因此:因此:(Sno,Cno

20、)FGrade在关系在关系R(Sno,Cno,Sdept)中,中,(Sno,Cno)Sdeptp27AnIntroductiontoDatabaseSystems四、传递函数依赖四、传递函数依赖定义定义6.3在关系模式在关系模式R(U)中,如果中,如果XY,YZ,且且Y X,YX,则称则称Z传递函数依赖传递函数依赖于于X。注注:如果如果YX,即即XY,则则Z直接依赖直接依赖于于X。例例:在关系在关系Std(Sno,Sdept,Mname)中,有:中,有:SnoSdept,SdeptMname,SdeptSno,Sdept Sno则,则,Mname传递函数依赖于传递函数依赖于Sno。记作记作Sn

21、oMname传递传递28AnIntroductiontoDatabaseSystems例:例:学生关系模式中:学生关系模式中:非平凡函数依赖非平凡函数依赖 学号学号姓名姓名 学号学号系系 系系系主任系主任 (学号,课程)(学号,课程)成绩成绩教室(课程,班级,时间,教室)教室(课程,班级,时间,教室)完全函数依赖完全函数依赖 (课程,班级,时间)(课程,班级,时间)教室教室教师(姓名,职务,职务工资)教师(姓名,职务,职务工资)传递函数依赖传递函数依赖 姓名姓名职务职务 职务职务职务工资职务工资 (+2+2个条件)个条件) 则则姓名姓名 职务工资职务工资举例举例F传递传递29AnIntrodu

22、ctiontoDatabaseSystems6.2.2码码现实世界的每一实体集合,都有一关键字(码),现实世界的每一实体集合,都有一关键字(码),即即唯一确定唯一确定各个实体的一组属性。各个实体的一组属性。定义定义6.4设设K为关系模式为关系模式R中的属性或属性中的属性或属性组合。若组合。若KFU,则则K称为称为R的一个的一个侯选码侯选码。若关若关系模式系模式R有有多个多个候选码,则选定其中的一个做为候选码,则选定其中的一个做为主码主码。主属性与非主属性主属性与非主属性全码全码(ALLKEY):):整个属性组是码。整个属性组是码。30AnIntroductiontoDatabaseSystem

23、s例例:在关系在关系S(Sno,Sdept,Sage)中,中,Sno是码是码在关系在关系SC(Sno,Cno,Grade)中,中,(Sno,Cno)是码是码。在关系在关系R(演奏者,作品,听众演奏者,作品,听众)中,假设一个演中,假设一个演奏者可以演奏多个作品,某一作品可被多个演奏奏者可以演奏多个作品,某一作品可被多个演奏者演奏。听众也可以欣赏不同演奏者的不同作品,者演奏。听众也可以欣赏不同演奏者的不同作品,这个关系模式的这个关系模式的码为码为(演奏者,作品,听众演奏者,作品,听众)6.2.2码码31AnIntroductiontoDatabaseSystems外部码外部码定义定义6.5关系模

24、式关系模式R中属性或属性组中属性或属性组X并非并非R的码,但的码,但X 是另一个关系模式的码,则是另一个关系模式的码,则称称X 是是R 的的外部码(外部码(Foreignkey)也称也称外码。外码。主码又和外部码一起提供了表示关系间主码又和外部码一起提供了表示关系间联系的手段。联系的手段。32AnIntroductiontoDatabaseSystems外部码外部码如在如在SC(SNO,CNO,G)中,中,SNO不是不是码,但码,但SNO是关系模式是关系模式S(SNO,SDEPT,SAGE)的码,则的码,则SNO是是关系模式关系模式SC的的外部码外部码。33AnIntroductiontoDa

25、tabaseSystems6.2.3范式范式关系模式的好与坏,用什么标准衡量?这关系模式的好与坏,用什么标准衡量?这个标准就是模式的范式(个标准就是模式的范式(NormalForms,简记为,简记为NF)。)。范式范式是符合某一种级别的关系模式的集合。是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求。关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。满足不同程度要求的为不同范式。34AnIntroductiontoDatabaseSystems范式的范式的种类种类:第一范式第一范式(1NF)第二范式第二范式(2NF)第三范式第三范式(3NF)BC范式范式

26、(BCNF)第四范式第四范式(4NF)第五范式第五范式(5NF)6.2.3范式范式35AnIntroductiontoDatabaseSystems6.2.3范式范式各种范式之间存在联系:各种范式之间存在联系:某一关系模式某一关系模式R为第为第n范式,可简记为范式,可简记为R nNF。一个低一级范式的关系模式,通过一个低一级范式的关系模式,通过模式分模式分解解可以转换为若干个高一级范式的关系模可以转换为若干个高一级范式的关系模式的集合,这种过程就叫式的集合,这种过程就叫规范化规范化。36AnIntroductiontoDatabaseSystems6.2.3范式范式37AnIntroducti

27、ontoDatabaseSystems6.2.4 2NF1NF的定义的定义如果一个关系模式如果一个关系模式R的所有属性都是的所有属性都是不可分的基不可分的基本数据项本数据项,则,则R 1NF。第一范式是对关系模式的第一范式是对关系模式的最起码的要求最起码的要求。不满足。不满足第一范式的数据库模式不能称为关系数据库。第一范式的数据库模式不能称为关系数据库。但是满足第一范式的关系模式并但是满足第一范式的关系模式并不一定是一个好不一定是一个好的的关系模式。关系模式。系名称系名称高级职称人数高级职称人数教授教授副教授副教授38AnIntroductiontoDatabaseSystems2NF例例:关

28、系模式关系模式SLC(Sno,Sdept,Sloc,Cno,Grade)Sloc为学生住处,假设每个系的学生住在同一为学生住处,假设每个系的学生住在同一个地方。个地方。这里这里码码为为(Sno,Cno)。函数依赖函数依赖包括:包括:(Sno,Cno)fGradeSnoSdept,(Sno,Cno)PSdeptSnoSloc,(Sno,Cno)PSlocSdeptSloc39AnIntroductiontoDatabaseSystems 2NFSLC的码为的码为(Sno,Cno)SLC满足满足第一范式第一范式。非主属性非主属性Sdept和和Sloc部分函数依赖于码部分函数依赖于码(Sno,Cno

29、)SnoCnoGradeSdeptSlocSLC虚线表示部分虚线表示部分函数依赖函数依赖40AnIntroductiontoDatabaseSystemsSLC不是一个好的关系模式不是一个好的关系模式关系模式关系模式SLC(Sno,Sdept,Sloc,Cno,Grade)(1)插入异常插入异常假设假设Sno95102,SdeptIS,SlocN的学生还的学生还未选课未选课,因课,因课程号是主属性,因此该学生的信息程号是主属性,因此该学生的信息无法插入无法插入SLC。(2)删除异常删除异常假定某个学生本来假定某个学生本来只选修了只选修了3号课程号课程这一门课。现在因身体不适,这一门课。现在因身

30、体不适,他连他连3号课程也不选修了。因课程号是主属性,此操作将导致该学号课程也不选修了。因课程号是主属性,此操作将导致该学生信息的生信息的整个元组都要删除整个元组都要删除。41AnIntroductiontoDatabaseSystemsSLC不是一个好的关系模式不是一个好的关系模式(3)数据冗余度大数据冗余度大如果一个学生选修了如果一个学生选修了10门课程,那么他的门课程,那么他的Sdept和和Sloc值就要值就要重复存储重复存储了了10次。次。(4)修改复杂修改复杂例如学生转系,在修改此学生元组的例如学生转系,在修改此学生元组的Sdept值的同值的同时,还可能需要修改住处(时,还可能需要修

31、改住处(Sloc)。)。如果这个学生如果这个学生选修了选修了K门课,则必须无遗漏地门课,则必须无遗漏地修改修改K个元组中全部个元组中全部Sdept、Sloc信息信息。42AnIntroductiontoDatabaseSystems 2NF原因:原因:Sdept、Sloc部分函数依赖于码部分函数依赖于码。解决方法:解决方法:SLC分解分解为两个关系模式,以消除这些为两个关系模式,以消除这些部分函数依赖:部分函数依赖:SC(Sno,Cno,Grade)SL(Sno,Sdept,Sloc)43AnIntroductiontoDatabaseSystems2NF函数依赖图函数依赖图:SnoCnoGr

32、adeSCSLSnoSdeptSloc44AnIntroductiontoDatabaseSystems 2NF2NF的定义的定义定义定义6.6若关系模式若关系模式R 1NF,并且每一个并且每一个非主非主属性属性都都完全函数依赖完全函数依赖于于R的码,则的码,则R 2NF。例:例:SLC(Sno,Sdept,Sloc,Cno,Grade) 1NFSLC(Sno,Sdept,Sloc,Cno,Grade) 2NFSC(Sno,Cno,Grade) 2NFSL(Sno,Sdept,Sloc) 2NF45AnIntroductiontoDatabaseSystems第二范式(续)第二范式(续)将一个

33、将一个1NF的关系的关系分解分解为多个为多个2NF的关系,可的关系,可以在一定程度上以在一定程度上减轻减轻原原1NF关系中存在的插入关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等异常、删除异常、数据冗余度大、修改复杂等问题。问题。将一个将一个1NF关系分解为多个关系分解为多个2NF的关系,的关系,并不并不能完全消除能完全消除关系模式中的各种异常情况和数据关系模式中的各种异常情况和数据冗余。冗余。任何一个任何一个二目关系二目关系都是都是属于属于2NF的。的。46AnIntroductiontoDatabaseSystems 6.2.5 3NF例:例:2NF关系模式关系模式SL(Sno,

34、Sdept,Sloc)仍然存在仍然存在数据冗余数据冗余(Sdept、Sloc会重复存储多会重复存储多次,造成次,造成修改复杂修改复杂)等问题。)等问题。分析:函数依赖:分析:函数依赖:SnoSdeptSdeptSlocSnoSlocSloc传递函数依赖于传递函数依赖于Sno,即即SL中存在中存在非主属性非主属性对码的传递函数依赖对码的传递函数依赖。47AnIntroductiontoDatabaseSystems3NF函数依赖图函数依赖图:SLSnoSdeptSloc48AnIntroductiontoDatabaseSystems 3NF解决方法解决方法采用投影分解法,把采用投影分解法,把S

35、L分解分解为两个关系模式,为两个关系模式,以消除传递函数依赖:以消除传递函数依赖:SD(Sno,Sdept)DL(Sdept,Sloc)SD的码为的码为Sno,DL的码为的码为Sdept。49AnIntroductiontoDatabaseSystems 3NFSD的码为的码为Sno,DL的码为的码为Sdept。SnoSdeptSDSdeptSlocDL50AnIntroductiontoDatabaseSystems 3NF3NF的定义的定义定义定义6.8关系模式关系模式R中若不存在这样的码中若不存在这样的码X、属性组属性组Y及及非主属性非主属性Z(Z Y), 使得使得XY,(YX),YZ,

36、成立,则称成立,则称R 3NF。若若R 3NF,则则R的每一个的每一个非主属性非主属性既既不部分函数依不部分函数依赖于候选码也不传递函数依赖于候选码赖于候选码也不传递函数依赖于候选码。例,例,SL(Sno,Sdept,Sloc) 2NFSL(Sno,Sdept,Sloc) 3NFSD(Sno,Sdept) 3NFDL(Sdept,Sloc) 3NF51AnIntroductiontoDatabaseSystems 3NF如果如果R 3NF,则则R也是也是2NF。采用投影分解法将一个采用投影分解法将一个2NF的关系分解为多个的关系分解为多个3NF的关系,的关系,可以在可以在一定程度上解决一定程度

37、上解决原原2NF关系中存在的插入异常、删除关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。异常、数据冗余度大、修改复杂等问题。将一个将一个2NF关系分解为多个关系分解为多个3NF的关系后,的关系后,并不能完全消除并不能完全消除关系模式中的各种异常情况和数据冗余。关系模式中的各种异常情况和数据冗余。任何一个任何一个二目关系二目关系都是都是属于属于3NF的。的。如果一个关系中如果一个关系中不包括非主属性不包括非主属性,则此关系属于,则此关系属于3NF。52AnIntroductiontoDatabaseSystems6.2.6BC范式(范式(BCNF)定义定义6.9设关系模式设关系模

38、式R 1NF,如果对于如果对于R的的每个函数依赖每个函数依赖XY,若若Y不属于不属于X,则则X必含有必含有候选码候选码,那么,那么R BCNF。若若R BCNF,每一个决定属性集(因素)都包含每一个决定属性集(因素)都包含(候选)码(候选)码R中的中的所有属性所有属性(主,非主属性)都(主,非主属性)都完全函数依赖完全函数依赖于码,于码,并且并且不存在任何属性对码的传递函数依赖不存在任何属性对码的传递函数依赖若若R 3NF则则R不一定不一定BCNF任何一个任何一个二目关系二目关系都是都是属于属于BCNF的的。53AnIntroductiontoDatabaseSystemsBCNF(续)(续)

39、例例5关系模式关系模式C(Cno,Cname,Pcno)nC 3NFnC BCNF例例6关系模式关系模式S(Sno,Sname,Sdept,Sage)n假定假定S有两个码有两个码Sno,SnamenS 3NFnS BCNF54AnIntroductiontoDatabaseSystemsBCNF(续)(续)例例7关系模式关系模式SJP(S,J,P)n函数依赖:(函数依赖:(S,J)P;(;(J,P)Sn(S,J)与()与(J,P)都可以作为候选码)都可以作为候选码,属属性相交性相交nSJP 3NFnSJP BCNF55AnIntroductiontoDatabaseSystems BCNF例例

40、8在关系模式在关系模式STJ(S,T,J)中,中,S表示学生,表示学生,T表示教师,表示教师,J表示课程。表示课程。每一教师只教一门课。每门课由若干教师教,每一教师只教一门课。每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选师。某个学生选修某个教师的课就确定了所选课的名称课的名称:(S,J)T,(S,T)J,TJ56AnIntroductiontoDatabaseSystems 6.2.6 BCNF SJTSTJSTJ57AnIntroductiontoDatabaseSystemsBCNF(S,J)和

41、和(S,T)都可以作为候选码都可以作为候选码S、T、J都都是主属性是主属性STJ 3NFTJ,T是决定属性集,是决定属性集,T不是候选码不是候选码STJ BCNF58AnIntroductiontoDatabaseSystemsBCNF解决方法解决方法:将:将STJ分解分解为二个关系模式:为二个关系模式:SJ(S,J) BCNF,TJ(T,J) BCNF不存在不存在任何属性任何属性对码的部分函数依赖和传对码的部分函数依赖和传递函数依赖递函数依赖SJSJTJTJ59AnIntroductiontoDatabaseSystems3NF与与BCNF的关系的关系如果关系模式如果关系模式R BCNF,必

42、定必定有有R 3NF如果如果R 3NF,则则R未必属于未必属于BCNF。如果如果R 3NF,且且R只有一个候选码只有一个候选码,则,则R必属于必属于BCNF。60AnIntroductiontoDatabaseSystemsBCNF一个模式中的关系模式如果都属于一个模式中的关系模式如果都属于BCNF,那么在那么在函数依赖范畴内函数依赖范畴内,它己,它己实现了实现了彻底的分离彻底的分离,已消除了插入和删,已消除了插入和删除的异常。除的异常。3NF的的“不彻底不彻底”性性表现在表现在可能存在可能存在主属性对码的部分依赖和传递主属性对码的部分依赖和传递依赖依赖。61AnIntroductiontoD

43、atabaseSystems在关系数据库中,对关系模式的在关系数据库中,对关系模式的基本基本要求要求是是满足第一范式满足第一范式。这样的关系模式。这样的关系模式就是合法的、允许的。就是合法的、允许的。但是,人们发现有些关系模式存在插但是,人们发现有些关系模式存在插入、删除异常、修改复杂,数据冗余等入、删除异常、修改复杂,数据冗余等毛病。人们寻求解决这些问题的方法,毛病。人们寻求解决这些问题的方法,这就是这就是规范化规范化的目的。的目的。6.2.7规范化规范化62AnIntroductiontoDatabaseSystems规范化的基本思想规范化的基本思想消除不合适消除不合适的数据依赖的数据依赖

44、使各关系模式达到某种程度的使各关系模式达到某种程度的“分离分离”让一个关系描述一个概念、一个实体让一个关系描述一个概念、一个实体或者实体间的一种联系。若多于一个或者实体间的一种联系。若多于一个概念就把它概念就把它“分离分离”出去出去所谓规范化实质上是所谓规范化实质上是概念的单一化概念的单一化63AnIntroductiontoDatabaseSystems规范化的过程规范化的过程关系模式的规范化过程是通过对关系模关系模式的规范化过程是通过对关系模式的式的分解分解来实现的。把低一级的关系模来实现的。把低一级的关系模式分解为若干个式分解为若干个高一级高一级的关系模式。的关系模式。64AnIntro

45、ductiontoDatabaseSystems各种范式及规范化过程各种范式及规范化过程1NF消除消除非主属性非主属性对码的对码的部分部分函数依赖函数依赖消除决定属性消除决定属性2NF集非码的非平集非码的非平消除消除非主属性非主属性对码的对码的传递传递函数依赖函数依赖凡函数依赖凡函数依赖3NF消除消除主属性主属性对码的对码的部分和传递部分和传递函数依函数依赖赖BCNF消除非消除非平凡且非函数依赖平凡且非函数依赖的多值依赖的多值依赖4NF规范化的过程规范化的过程65AnIntroductiontoDatabaseSystems规范化(续)规范化(续)不能说不能说规范化程度规范化程度越高越高的关系

46、模式就的关系模式就越好越好在设计数据库模式结构时,必须对现实世界的在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式一个合适的、能够反映现实世界的模式上面的规范化步骤可以在其中任何一步终止上面的规范化步骤可以在其中任何一步终止66AnIntroductiontoDatabaseSystems6.2.8候选码的求解理论候选码的求解理论对于给定的关系模式对于给定的关系模式R(U,F),若),若X(X U)是是仅出现仅出现在在F的函数依赖的函数依赖左边的属性左边的属性,则,则X必包必包含在含在R的

47、任一候选码中。的任一候选码中。对于给定的关系模式对于给定的关系模式R(U,F),若),若X(X U)是是仅出现仅出现在在F的函数依赖的函数依赖右边的属性右边的属性,则,则X不在不在R的任何候选码中。的任何候选码中。对于给定的关系模式对于给定的关系模式R(U,F),若),若X(X U)是在是在F的函数依赖的函数依赖左右两边均未出现的属性左右两边均未出现的属性,则则X必包含在必包含在R的任一候选码中。的任一候选码中。67AnIntroductiontoDatabaseSystems小结小结规规范范化化理理论论为为数数据据库库设设计计提提供供了了理理论论的的指指南和工具南和工具并不是规范化程度越高,

48、模式就越好并不是规范化程度越高,模式就越好必必须须结结合合应应用用环环境境和和现现实实世世界界的的具具体体情情况合理地选择数据库模式况合理地选择数据库模式68AnIntroductiontoDatabaseSystems例题例题例例1:在在函函数数依依赖赖范范畴畴内内,对对以以下下各各关关系系模模式式,指指出出全全部部候候选选码码,主主属属性性,非非主主属属性性,并并指指明明最最高高属于哪个范式,为什么?属于哪个范式,为什么?(1)R(A,B,C,D)F=AB,AC,AD,(B,C)A 主属性为主属性为A,B,C;非主属非主属性为性为D解:解:AU A为为R的候选码的候选码(B,C)A,AD

49、(B,C)D (B,C)U (B,C)为为R的候选码的候选码FF69AnIntroductiontoDatabaseSystems例题例题AD,(B,C)A,AB,AC又又A、(B,C)均为均为R的码的码 R中每个决定因素都包含码中每个决定因素都包含码 R BCNF70AnIntroductiontoDatabaseSystems例题例题(2)R(E,P,G,H)F=(P,G)H,GE解:解:(P,G)G,GE (P,G)E (P,G)U (P,G)为为R的候选码的候选码 主属性为主属性为P,G;非主属性为非主属性为E,H(P,G)E,GE (P,G)E R不属于不属于2NF R最高属于最高属

50、于1NF.FP71AnIntroductiontoDatabaseSystems作业作业(3)R(A,B,C)F=BC,BA,(A,C)B72AnIntroductiontoDatabaseSystems例题例题例例 2: 设设 有有 关关 系系 模模 式式 R(U,F), 其其 中中 :U=A,B,C,D,E,P,F=AB,CP,EA,CED,已知,已知R只有一个只有一个候选码候选码,求出,求出R的候选码。的候选码。CE例例3:设设有有关关系系模模式式R(C,T,S,N,G),其其上上的的函函数数依依赖赖集集:F=CT,CSG,SN,已已知知R只只有有一一个个候选码,求出候选码,求出R的候选

51、码。的候选码。CS73AnIntroductiontoDatabaseSystems例题例题74AnIntroductiontoDatabaseSystems传递传递75AnIntroductiontoDatabaseSystems1.如如果果关关系系模模式式R属属于于1NF,且且每每个个非非主主属属性性都都完完全全函函数数依赖于依赖于R的主码,则的主码,则R属于(属于()A.2NFB.3NFC.BCNFD.4NF2.已已知知关关系系R(P,Q,M,N),F是是R上上成成立立的的函函数数依依赖赖集,集,F=(PQ,QM),则则R的侯选码是(的侯选码是()A.PB.QC.(P,Q)D.(P,N)

52、3.已已知知学学生生关关系系:R(学学号号,姓姓名名,系系名名称称,系系地地址址),每每一一名名学学生生属属于于一一个个系系,每每一一个个系系有有一一个个地地址址,则则R属属于于()A.1NFB.2NFC.3NFD.4NF练习练习76AnIntroductiontoDatabaseSystems4.下列陈述中,错误的是(下列陈述中,错误的是()A.2NF必然属于必然属于1NFB.3NF必然属于必然属于2NFC.3NF必然属于必然属于BCNFD.BCNF必然属于必然属于3NF5.在订单管理系统中,客户一次购物(一张订单)可以在订单管理系统中,客户一次购物(一张订单)可以订购多种商品。有订单关系订

53、购多种商品。有订单关系R:R(订单号,日期,客订单号,日期,客户名称,商品编码,数量),则户名称,商品编码,数量),则R的主码是(的主码是()A.订单号订单号B.(订单号,客户名称订单号,客户名称)C.商品编码商品编码D.(订单号,商品编码订单号,商品编码)6.第第5题中的关系题中的关系R属于(属于()A.1NFB.2NFC.3NFD.4NF练习练习77AnIntroductiontoDatabaseSystems7关系模式中各级范式之间的关系为关系模式中各级范式之间的关系为。A.3NFC 2NF C 1NFB.B. 3NFC 1NF C 2NFC.C.1NFC 2NF C 3NFD.D.2N

54、FC 1NF C 3NFE.E.8 8.关关系系数数据据库库规规范范化化是是为为解解决决关关系系数数据据库库中中问问题而引入的。题而引入的。F.A.插入、删除异常和数据冗余插入、删除异常和数据冗余 B.提高查询速度提高查询速度G.C.减少数据操作的复杂性减少数据操作的复杂性 H.D.保证数据的安全性和完整性保证数据的安全性和完整性练习练习78AnIntroductiontoDatabaseSystems9. 规范化理论是关系数据库进行逻辑设计的理论依据。根规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满足:其每一属据这个理论,关系数据库中的关系必须满足:其每

55、一属性都是性都是。A. 互不相关的互不相关的 B不可分解的不可分解的C. 长度可变的长度可变的 D互相关联的互相关联的10.关系模型中的关系模式至少是关系模型中的关系模式至少是A.1NF B2NF C3NF DBCNFB.11. 在关系在关系DB中,任何二元关系模式的最高范式必定是中,任何二元关系模式的最高范式必定是( )C.1NF B2NF C3NF DBCNF练习练习79AnIntroductiontoDatabaseSystems12. 关系模式中,满足关系模式中,满足2NF的模式,(的模式,( )A可能是可能是1NF B必定是必定是1NFC. 必定是必定是3NF D必定是必定是BCNFD.13. 消除了部分函数依赖的消除了部分函数依赖的1NF的关系模式,必的关系模式,必定是定是( )A.1NF B2NF C3NF DBCNF练习练习80AnIntroductiontoDatabaseSystems练习练习参考答案:参考答案:1.A 2.D 3.B 4.C 5.D 6.A 7.A8.A9.B10.A11.D12.B13.B81AnIntroductiontoDatabaseSystems休息一会儿。休息一会儿。下课了。下课了。82

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号