《关系数据理论》PPT课件.ppt
《《关系数据理论》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《关系数据理论》PPT课件.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章第六章 关系数据理论关系数据理论主要内容主要内容6.1问题的提出问题的提出6.2 规范化规范化6.3 数据依赖的公理系统数据依赖的公理系统6.4 模式的分解模式的分解6.1 问题的提出问题的提出一、一、关系数据库逻辑设计关系数据库逻辑设计定义:定义:针对具体问题,如何构造一个适合于它的数据模式针对具体问题,如何构造一个适合于它的数据模式数据库逻辑设计的工具数据库逻辑设计的工具关系数据库的规范化理论关系数据库的规范化理论二、引例:数据模式二、引例:数据模式“好好”与与“不好不好”例:建立描述学校教务的数据库,涉及的对象如下:例:建立描述学校教务的数据库,涉及的对象如下:学生的学号(学生的学
2、号(SnoSno)、学生的姓名()、学生的姓名(SnameSname)、所在系()、所在系(SdeptSdept)、)、系主任姓名(系主任姓名(MnameMname)、课程号()、课程号(CnoCno)、成绩()、成绩(GradeGrade)对象间联系:对象间联系:1.1.一个系有若干学生,一个系有若干学生,一个学生只属于一个系;一个学生只属于一个系;2.2.一个系只有一名主任;一个系只有一名主任;3.3.一个学生可以选修多门课程,一个学生可以选修多门课程,每门课程有若干学生选修;每门课程有若干学生选修;4.4.每个学生所学的每门课程都有一个成绩。每个学生所学的每门课程都有一个成绩。引例:数据
3、模式引例:数据模式“好好”与与“不好不好”(续续)第一种设计方案:第一种设计方案:使用单一的关系模式使用单一的关系模式 :StudentStudent(Sno,Sname,Sdept,Mname,Cno,GradeSno,Sname,Sdept,Mname,Cno,Grade)思考:确定表的主键。思考:确定表的主键。主键:主键:Sno,CnoSnoSnameSdeptMnameCnoGrades1王小华计算机系张明c195s1王小华计算机系张明c290s2刘丹计算机系张明c189s2刘丹计算机系张明c391s3李义计算机系张明c285s4谢敏物理系王志c490s4谢敏物理系王志C588.下面给
4、出该方案的一个实例:下面给出该方案的一个实例:存在以下问题:n数据冗余太大n更新异常n插入异常n删除异常结论:结论:该方案该方案“不好不好”引例:数据模式引例:数据模式“好好”与与“不好不好”(续续)第二种设计方案:第二种设计方案:使用三个关系模式使用三个关系模式 :S S(Sno,Sname,Sdept,Sno,Sname,Sdept,)SC SC(Sno,Cno,GradeSno,Cno,Grade)DEPT DEPT(Sdept,MnameSdept,Mname)该方案解决了方案该方案解决了方案一中的问题,因此,该一中的问题,因此,该方案方案“好好”三、关系数据库规范化理论的内容三、关系
5、数据库规范化理论的内容数据依赖数据依赖范式范式模式设计(模式分解)模式设计(模式分解)函数依赖多值依赖由函数依赖决定的包括:1NF、2NF、3NF、BCNF由多值依赖决定的例如:4NF四、关系模式的简化表示四、关系模式的简化表示关系模式由五部分组成,即它是一个五元组:关系模式由五部分组成,即它是一个五元组:R(U,D,DOM,F)R(U,D,DOM,F)R R:关系名关系名U U:组成该关系的属性名集合组成该关系的属性名集合D D:属性组属性组U U中属性所来自的域中属性所来自的域DOMDOM:属性向域的映象集合属性向域的映象集合F F:属性间数据的依赖关系集合属性间数据的依赖关系集合在规范化
6、理论中,简化为一个三元组:在规范化理论中,简化为一个三元组:R R(U,FU,F)6.2 规范化规范化6.2.1 函数依赖函数依赖函数依赖函数依赖例如:“学号”确定之后,学生姓名就被唯一地确定;Sno,Cno确定之后,成绩就被唯一地确定;这种依赖关系类似于数学中的函数y=f(x),因此,称为函数依赖。SnoSnameSdeptMnameCnoGrades1王小华计算机系张明c195s1王小华计算机系张明c290s2刘丹计算机系张明c189s2刘丹计算机系张明c391s3李义计算机系张明c285s4谢敏物理系王志c490s4谢敏物理系王志c588.Student一、函数依赖定义一、函数依赖定义
7、定义定义6.1 6.1 设设R(U)R(U)是一个属性集是一个属性集U U上的关系模式,上的关系模式,X X和和Y Y是是U U的子集。的子集。若对于若对于R(U)R(U)的的任意任意一个可能的关系一个可能的关系r r,r r中不可能存在两个元组在中不可能存在两个元组在X X上的属性值相等,而在上的属性值相等,而在Y Y上的属性值不等,则称上的属性值不等,则称“X X函数确定函数确定Y Y”或或 “Y Y函数依赖于函数依赖于X X”,记作,记作XYXY。X X称为这个函数依赖的称为这个函数依赖的决定属性集决定属性集(Determinant)(Determinant)。思考:写出思考:写出Stu
8、dent中的函数依赖。中的函数依赖。Student(Sno,Sname,Sdept,Mname,Cno,Grade)F=Sno Sname,Sno Sdept,Sdept Mname,(Sno,Cno)Grade,说明:说明:函数依赖不是指关系模式函数依赖不是指关系模式R R的某个或某些关系实例满足的的某个或某些关系实例满足的约束条件,而是指约束条件,而是指R R的所有关系实例均要满足的约束条件。的所有关系实例均要满足的约束条件。函数依赖是函数依赖是语义范畴语义范畴的概念。只能根据数据的语义来确定的概念。只能根据数据的语义来确定函数依赖。函数依赖。例如:例如:姓名姓名年龄年龄这个函数依赖只有在
9、不重名的条件下才成立这个函数依赖只有在不重名的条件下才成立函数依赖例题函数依赖例题 例例:S(Sno,Sname,Ssex,Sage,Sdept):S(Sno,Sname,Ssex,Sage,Sdept)假设不允许重名,则有假设不允许重名,则有:F=Sno SsexF=Sno Ssex,Sno SageSno Sage,Sno SdeptSno Sdept,Sname SsexSname Ssex,Sname SageSname Sage,Sname SdeptSname Sdept,Sno SnameSno Sname 若若XYXY,并且,并且YX,YX,则记为则记为X XY Y。若若Y Y
10、不函数依赖于不函数依赖于X,X,则记为则记为X YX Y,例如:,例如:Ssex SageSsex Sage二、函数依赖的分类二、函数依赖的分类可以从不同角度分类:可以从不同角度分类:平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖直接函数依赖与传递函数依赖直接函数依赖与传递函数依赖1、平凡函数依赖与非平凡函数依赖、平凡函数依赖与非平凡函数依赖如果如果XYXY,但,但Y Y X X,则称,则称XYXY是平凡的函数依赖是平凡的函数依赖若果若果XYXY,但,但Y Y X,X,则称则称XYXY是非平凡的函数依赖是非平凡的函数依赖例如:例如:
11、StudentStudent(Sno,Sname,Sdept,Mname,Cno,GradeSno,Sname,Sdept,Mname,Cno,Grade)非平凡的函数依赖:非平凡的函数依赖:Sno Sno SnameSname Sdept Sdept MnameMname (Sno,CnoSno,Cno)GradeGrade平凡的函数依赖:平凡的函数依赖:Sno Sno Sno,Sno,(Sno,SnameSno,Sname)SnameSname平凡函数依赖与非平凡函数依赖(续)平凡函数依赖与非平凡函数依赖(续)对于任一关系模式,平凡函数依赖都是必然成立的,对于任一关系模式,平凡函数依赖都是
12、必然成立的,它不反映新的语义,因此若不特别声明,它不反映新的语义,因此若不特别声明,我们总是讨我们总是讨论论非平凡函数依赖非平凡函数依赖。2、完全函数依赖与部分函数依赖、完全函数依赖与部分函数依赖 如果如果XYXY,并且对于,并且对于X X的任何一个真子集的任何一个真子集X X,都有,都有X Y,X Y,则称则称Y Y完全函数依赖于完全函数依赖于X X,记作,记作X X Y Y。若若XYXY,但,但Y Y不完全函数依赖于不完全函数依赖于X X,则称,则称Y Y部分函数依赖于部分函数依赖于X X,记作记作X X P P Y Y。例如:例如:Student(Sno,Sname,Sdept,Mnam
13、e,Cno,Grade)指出下面的函数依赖哪些是完全的,哪些是部分的:指出下面的函数依赖哪些是完全的,哪些是部分的:Sno Sname (Sno,Cno)Grade (Sno,Sname)Sdept完全完全完全完全部分部分直接函数依赖与传递函数依赖直接函数依赖与传递函数依赖如果如果XYXY,YZYZ,且,且Y Y X X,YXYX,则称,则称Z Z传递函数依赖传递函数依赖于于X X。例如:例如:StudentStudent(Sno,Sname,Sdept,Mname,Cno,GradeSno,Sname,Sdept,Mname,Cno,Grade)因为因为Sno Sno SdeptSdept,
14、Sdept Sdept Mname Mname 所以存在传递依赖所以存在传递依赖Sno Sno MnameMname注注:如果如果XYXY,则,则Z Z直接依赖于直接依赖于X X。6.2.2 码码 若若K K U U,则,则K K称为称为R R的一个的一个侯选码侯选码(Candidate KeyCandidate Key)。若关)。若关系模式系模式R R有多个候选码,则选定其中的一个做为有多个候选码,则选定其中的一个做为主码主码(Primary keyPrimary key)。)。一些概念:一些概念:n候选码候选码n主码主码n主属性主属性n非主非主(码码)属性属性n超键超键包含候选码的属性组称
15、为超键,即:候选码超键例如,Student(Sno,Sname,Sdept,Mname,Cno,Grade)候选键:Sno,Cno超键:Sno,Cno,Sname、Sno,Cno,Sdept等等6.2.3 范式范式范式范式是符合某一种级别的关系模式的集合。是符合某一种级别的关系模式的集合。关系必须满足一定的要求。满足不同程度要求的为不同范式。关系必须满足一定的要求。满足不同程度要求的为不同范式。范式的种类:范式的种类:第一范式第一范式(1NF)(1NF)第二范式第二范式(2NF)(2NF)第三范式第三范式(3NF)(3NF)BCBC范式范式 (BCNF)(BCNF)第四范式第四范式(4NF)(
16、4NF)第五范式第五范式(5NF)(5NF)问题越少6.2.3 范式范式各种范式之间存在各种范式之间存在联系,如右图所示。联系,如右图所示。某一关系模式某一关系模式R R为为第第n n范式,可简记为范式,可简记为R R nNFnNF。一个低一级范式的一个低一级范式的关系模式,通过模关系模式,通过模式分解可以转换为式分解可以转换为若干个高一级范式若干个高一级范式的关系模式的集合,的关系模式的集合,这种过程叫做这种过程叫做规范规范化化。1NF2NF3NF4NF5NF1NF1NF1NF的定义的定义如果一个关系模式如果一个关系模式R R的所有属性都是的所有属性都是不可分的基本数据不可分的基本数据项项,
17、则,则R R 1NF1NF。第一范式是对关系模式的最起码的要求。不满足第一范式的第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。数据库模式不能称为关系数据库。但是满足第一范式的关系模式并不一定是一个好的关系模式。但是满足第一范式的关系模式并不一定是一个好的关系模式。6.2.4 2NF2NF2NF的定义的定义如果如果R R 1NF1NF,且每一个非主属性完全函数依赖于码,且每一个非主属性完全函数依赖于码,则,则,R R 2NF 2NF。2NF(续)(续)例例:关系模式关系模式S-L-C(Sno,Sdept,Sloc,Cno,Grade)S-L-C(Sno,Sde
18、pt,Sloc,Cno,Grade)其中,其中,SlocSloc为学生住处,假设每个系的学生住在同一个地方。为学生住处,假设每个系的学生住在同一个地方。主键:主键:Sno,CnoSno,Cno 函数依赖包括:函数依赖包括:F=(Sno,Cno)F=(Sno,Cno)f f Grade Grade,Sno SdeptSno Sdept,Sno SlocSno Sloc,Sdept SlocSdept Sloc 1.指出主属性和非主属性2.是2NF吗?为什么?2NF(续)(续)S-L-CS-L-C满足第一范式。满足第一范式。非主属性非主属性SdeptSdept和和SlocSloc部分函数依赖于码部
19、分函数依赖于码(SnoSno,CnoCno)S-L-CS-L-C不是不是2NF2NF,存在诸多问题,存在诸多问题。SnoCnoGradeSdeptSlocS-L-C2NF(续)(续)解决方法:解决方法:投影分解投影分解SnoCnoGradeSCSLSnoSdeptSloc 2NF(续)(续)SLCSLC分解为两个关系模式,以消除这些部分函数依赖分解为两个关系模式,以消除这些部分函数依赖 SCSC(SnoSno,CnoCno,GradeGrade)SLSL(SnoSno,SdeptSdept,SlocSloc)思考思考:分别指出两个表的主键。:分别指出两个表的主键。第二范式(续)第二范式(续)采
20、用采用投影分解法投影分解法将一个将一个1NF1NF的关系分解为多个的关系分解为多个2NF2NF的关系,的关系,可以在一定程度上减轻原可以在一定程度上减轻原1NF1NF关系中存在的插入异常、删除关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。异常、数据冗余度大、修改复杂等问题。将一个将一个1NF1NF关系分解为多个关系分解为多个2NF2NF的关系,的关系,并不能完全并不能完全消除关消除关系模式中的各种异常情况和数据冗余。系模式中的各种异常情况和数据冗余。课堂练习课堂练习1:例如:例如:StudentStudent(Sno,Sname,Sdept,Mname,Cno,GradeSno
21、,Sname,Sdept,Mname,Cno,Grade)主键:主键:Sno,CnoSno,Cno其上的函数依赖集合如下:其上的函数依赖集合如下:F=Sno F=Sno Sname,Sno Sname,Sno Sdept,Sdept Sdept,Sdept Mname,Mname,(Sno,CnoSno,Cno)GradeGrade1 1、指出主属性和非主属性、指出主属性和非主属性2 2、该关系是否属于、该关系是否属于2NF2NF?为什么?如果不是,请将其分解为一组?为什么?如果不是,请将其分解为一组2NF2NF关系模式。关系模式。课堂练习课堂练习1答案:答案:将将StudentStudent
22、(Sno,Sname,Sdept,Mname,Cno,GradeSno,Sname,Sdept,Mname,Cno,Grade)分解)分解为为一组一组2NF2NF模式:模式:SC(Sno,Cno,Grade)SC(Sno,Cno,Grade)主键:主键:SnoSno,CnoCnoSD(Sno,Sname,Sdept,Mname)SD(Sno,Sname,Sdept,Mname)主键:主键:SnoSno6.2.5 3NF3NF3NF的定义的定义如果如果R R 是是2NF2NF,且每个非主属性都,且每个非主属性都不传递依赖不传递依赖于于R R的候选码,则的候选码,则R R属于属于3NF3NF。3N
23、F(续)(续)分析下面的两个分析下面的两个2NF2NF,它们是不是属于,它们是不是属于3NF3NF。SCSC(SnoSno,CnoCno,GradeGrade)SLSL(SnoSno,SdeptSdept,SlocSloc)SnoCnoGradeSCSLSnoSdeptSloc是是不是不是 3NF(续)(续)解决方法解决方法 采用采用投影分解法投影分解法,把,把SLSL分解为两个关系模式,分解为两个关系模式,以消除传递函数依赖:以消除传递函数依赖:SDSD(SnoSno,SdeptSdept)DLDL(SdeptSdept,SlocSloc)SDSD的码为的码为SnoSno,DLDL的码为的码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系数据理论 关系 数据 理论 PPT 课件
限制150内