数据库系统西安电子科技大学数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China2第五章关系数据库理论(4版第六章)关系数据库系统由三级结构/两级映象的体系结构构成。关系模式是指关系数据库三结构中的模式,即数据库的逻辑结构。模式是数据库的整体结构,由所有的基本表的结构构成的整体就是模式。视图是子模式,它是模式的子集,是面向某一具体应用的。内模式是对数据的存储形式,它由一组物理文件构成,每一个物理文件对应一个或多个基本表。引言数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China3第五章关系数据库理论从合理组织数据加以存储的角度出发,要求达到数据的冗余度小、共享性高。解决的办法是对模式进行分解,分解成一组关系模式,每一关系模式对应一个基本表。而在使用方面,通过将多各关系模式进行自然连接,构成完整的关系模式。怎样的分解才是合理的?关系数据库理论就是用来指导关系数据库模式设计的。模式设计是数据库设计的主要内容之一。引言数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China45.1关系模式设计引论关系的外延和内涵外延:关系模型的值,即关系模型中的数据,称为关系、实例或当前值。它随着时间的推移而变化,主要由元组的插入、删除和修改而引起。外延是动态的。内涵:是对关系、属性、域的定义和说明,即关系模型的型的定义。内涵是静态的。一个完整的关系模型内涵的定义:数据依赖属性到域上的映射关系关系的域属性集R(U,D,dom(),F)关系名关系的内涵称为关系模式。它是静态的,与时间无关。关系模式通常简记为:RU,F。数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China55.1关系模式设计引论关系模式的存储异常例:描述学校的数据库有如下属性:学生的学号(Sno)、所在系(Sdept)、系主任姓名(Mname)、课程名(Cname)、成绩(Grade)关系模式:Student(Sno,Sdept,Mname,Cname,Grade)语义:1.一个系有若干学生,一个学生只属于一个系;2.一个系只有一名主任;3.一个学生可以选修多门课程,每门课程有若干学生选修;4.每个学生所学的每门课程都有一个成绩。数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China65.1关系模式设计引论关系模式Student(Sno,Sdept,Mname,Cname,Grade)存在的问题:1.数据冗余度大浪费大量的存储空间例:每一个系主任的姓名重复出现2.修改异常(UpdateAnomalies)数据冗余,更新数据时,维护数据完整性代价大。例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组3.插入异常(InsertionAnomalies)该插的数据无法插入到表中。例:如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China75.1关系模式设计引论⒋删除异常(DeletionAnomalies)不该删除的数据不得不删例:如果某个系的学生全部毕业了,我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。结论:•Student关系模式不是一个好的模式。•所谓“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。原因:由存在于模式中属性间的某些依赖关系引起的如Mname的取值依赖于Sdept的值。解决方法:通过分解关系模式来消除其中不合适的依赖。如:分解为Student(Sno,Sdept,Cname,Grade)和Dept(Sdept,Mname)两关系模式即可解决。数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China85.2规范化规范化(Normalization)是指定义一组关系模式应该符合的条件(范式),而符合这些条件的关系模式就不存在某些操作异常,冗余也会减小。函数依赖(FunctionalDependencies,简写为FD)定义:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y(读作X决定Y)。X称为这个函数依赖的决定因素(Determinant)。例:学生关系Student(Sno,Sname,Ssex,Sage,Sdept)假设不允许重名,则有:Sno→Ssex,Sno→Sage,Sno→Sdept,Sno→Sname,Sname→Sno,Sname→Ssex,Sname→Sage,Sname→Sdept。数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China95.2规范化说明:1.函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。2.函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。例如:“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立。3.现实世界中实体的很多属性间都有函数依赖关系,如“学生学号决定学生的姓名”,即如果知道了学生的学号,就能确定该学生的姓名。4.数据库设计者也可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在,则拒绝装入该元组。数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China105.2规范化几种特殊的函数依赖:在关系模式R(U)中,对于U的子集X和Y,④若Y不函数依赖于X,则记为X→Y。例:在关系SC(Sno,Cno,Grade)中,非平凡函数依赖:(Sno,Cno)→Grade平凡函数依赖:(Sno,Cno)→Sno,(Sno,Cno)→Cno注:对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明,我们总是讨论非平凡函数依赖。①若X→Y,但YX,则称X→Y是非平凡的函数依赖②若X→Y,但YX,则称X→Y是平凡的函数依赖(TrivialFD)③若X→Y,并且Y→X,则记为X←→Y。(X与Y相互决定)数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China115.2规范化定义:在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’→Y,则称Y完全函数依赖于X,记作XFY。若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作XPY。例:在关系SC(Sno,Sname,Cno,Grade)中,由于:Sno→Grade,Cno→Grade,因此:(Sno,Cno)FGrade(Sno,Sname,Cno)PGrade定义:在关系模式R(U)中,如果X→Y,(YX),Y→XY→Z,则有X→Z,称Z传递函数依赖于X,记为:XTZ。注:①如果Y→X,即X←→Y,则Z直接依赖于X;②如果YX,则XPZ。例:在关系Std(Sno,Sdept,Mname)中,有:Sno→Sdept,Sdept→Mname,则SnoTMname(Sno,Sdept)Sdept,SdeptMname,(Sno,Sdept)PMname数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China125.2规范化主码的两个性质:①决定性:K→U②最小性:K’K,使得K’→U主属性(PrimeAttribute):所有候选码中出现的属性非主属性(NonprimeAttribute):不出现在任何候选码中的属性全码(AllKey):由关系模式的所有属性构成码例:设关系模式S(Sno,Sname,Sdept,Sage),若无重名,则Sno,Sname是候选码,Sno,Sname是主属性,Sdept,Sage是非主属性。定义:设K为关系模式RU,F中的属性或属性组。若KFU,则K称为R的一个候选码(CandidateKey)。若关系模式R有多个候选码,则选定其中的一个做为主码(Primarykey)。候选码常常简称为码。数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China135.2规范化定义:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码(Foreignkey),也称外码。例:在关系SC(Sno,Cno,Grade)中,码为(Sno,Cno),Sno是另一关系S(Sno,Sname,…)的码,而非SC的码,故Sno是SC的外码,同样Cno也是SC的外码。注:①主码又和外部码一起提供了表示关系间联系的手段。②给出多个候选码时,以“,”分隔不同的候选码;当候选码为多个属性时,候选码用()括起来,属性间用“,”隔开。如:关系模式S(Sno,Sname,Sdept,Sage)的候选码为:Sno,Sname。关系模式SC(Sno,Cno,Grade)的候选码为(Sno,Cno)。数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,XidianUniversity,China145.2规范化范式范式(NormalForm)是符合某一类满足一定要求的关系模式的集合。关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。定义:如果一个关系模式R的所有属性都是不可分的基本数据项,则称关系R为第一范式的关系模式(FirstNormalForm),简称关系R属于一范式,记为:R∈1NF。注:①第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。(由关系属性的原子性得出)。②但是满足第一范式的关系模式并不一定是一个好的关系模式。数据库系统–PrincipleofDataBaseSystem西安电子科技大学计算机学院-SchoolofComputerScience&Engineering,Xi