关系模式设计理论.ppt
《关系模式设计理论.ppt》由会员分享,可在线阅读,更多相关《关系模式设计理论.ppt(102页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关系模式设计理论关系模式设计理论现在学习的是第1页,共102页第三章第三章 关系模式设计理论关系模式设计理论教学重点:概念模式转换成关系模式的的方教学重点:概念模式转换成关系模式的的方法,数据依赖,关系规范化理论,关系模式法,数据依赖,关系规范化理论,关系模式的分解方法。的分解方法。教学难点:关系规范化理论,关系模式的分教学难点:关系规范化理论,关系模式的分解方法。解方法。教学时数:教学时数:8学时。学时。现在学习的是第2页,共102页教学内容教学内容 一、数据依赖一、数据依赖二、数据依赖的公理系统二、数据依赖的公理系统三、关系模式的规范形式三、关系模式的规范形式四、关系模式规范化方法四、关系
2、模式规范化方法现在学习的是第3页,共102页一、关系数据库设计理论一、关系数据库设计理论(一一)问题的提出问题的提出l针对具体问题,如何构造一个适合于它的数据模式针对具体问题,如何构造一个适合于它的数据模式l数据库逻辑设计的工具数据库逻辑设计的工具关系数据库的规范化理论关系数据库的规范化理论l一个初始的逻辑关系模式存在着很多问题一个初始的逻辑关系模式存在着很多问题l举例:举例:现在学习的是第4页,共102页S#(*) C#(*) Cname Tname01C1C语言语言张一张一02C1C语言语言张一张一03C3B语言语言张三张三04C4Java张四张四异常问题异常问题:1、数据冗余、数据冗余2
3、、修改异常、修改异常3、插入异常、插入异常4、删除异常、删除异常分解是解决冗余的主分解是解决冗余的主要方法要方法现在学习的是第5页,共102页( (二二) )函数依赖函数依赖一、函数依赖一、函数依赖二、平凡函数依赖与非平凡函数依赖二、平凡函数依赖与非平凡函数依赖三、完全函数依赖与部分函数依赖三、完全函数依赖与部分函数依赖四、传递函数依赖四、传递函数依赖现在学习的是第6页,共102页一、函数依赖一、函数依赖定义定义: 设设R(U)是一个属性集是一个属性集U上的关系模式,上的关系模式,X和和Y是是U的子集的子集。 若对于若对于R(U)的任意一个可能的关系的任意一个可能的关系r,r中不可能存在两个元
4、中不可能存在两个元组在组在X上的属性值相等,上的属性值相等, 而在而在Y上的属性值不等,上的属性值不等, 则称则称 “X函函数确定数确定Y” 或或 “Y函数依赖于函数依赖于X”,记作,记作XY。 X称为这个称为这个函数依赖的决定属性集函数依赖的决定属性集(Determinant)。现在学习的是第7页,共102页说明:说明: 1. 函数依赖不是指关系模式函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件的某个或某些关系实例满足的约束条件,而是指,而是指R的所有关系实例均要满足的约束条件。的所有关系实例均要满足的约束条件。2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖函数
5、依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如例如“姓名姓名年龄年龄”这个函数依赖只有在不允许有同名人的条件下成这个函数依赖只有在不允许有同名人的条件下成立立3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖现,函数依赖“姓名姓名年龄年龄”成立。所插入的元组必须满足规定成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在,的函数依赖,若发现有同名人存在, 则拒绝装入该元组。则拒绝装入该元组。现在学习的是第8页,共102页函数依赖(续)函数依赖(续)例例: Student(Sno,
6、 Sname, Ssex, Sage, Sdept) 假设不允许重名,则有假设不允许重名,则有:Sno Ssex, Sno Sage , Sno Sdept, Sno Sname, Sname Ssex, Sname SageSname Sdept但但Ssex Sage若若XY,并且,并且YX, 则记为则记为XY。 若若Y不函数依赖于不函数依赖于X, 则记为则记为XY。现在学习的是第9页,共102页二、平凡函数依赖与非平凡函数依赖二、平凡函数依赖与非平凡函数依赖在关系模式在关系模式R(U)中,对于中,对于U的子集的子集X和和Y,如果如果XY,但,但Y X,则称,则称XY是非平凡的函数依赖是非平
7、凡的函数依赖若若XY,但,但Y X, 则称则称XY是平凡的函数依赖是平凡的函数依赖例:在关系例:在关系SC(Sno, Cno, Grade)中,中, 非平凡函数依赖:非平凡函数依赖: (Sno, Cno) Grade 平凡函数依赖:平凡函数依赖: (Sno, Cno) Sno (Sno, Cno) Cno现在学习的是第10页,共102页平凡函数依赖与非平凡函数依赖(续)平凡函数依赖与非平凡函数依赖(续) 对于任一关系模式,平凡函数依赖都是必对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特然成立的,它不反映新的语义,因此若不特别声明,别声明, 我们总是讨论非平凡函数依赖
8、我们总是讨论非平凡函数依赖。现在学习的是第11页,共102页三、完全函数依赖与部分函数依赖三、完全函数依赖与部分函数依赖定义在关系模式定义在关系模式R(U)中,如果中,如果XY,并且对于,并且对于X的的任何一个真子集任何一个真子集X,都有,都有 X Y, 则称则称Y完全完全函数依赖于函数依赖于X,记作,记作X Y。 若若XY,但,但Y不完全函数依赖于不完全函数依赖于X,则称,则称Y部分函部分函数依赖于数依赖于X,记作,记作X P Y。 现在学习的是第12页,共102页完全函数依赖与部分函数依赖(续)完全函数依赖与部分函数依赖(续)例例: 在关系在关系SC(Sno, Cno, Grade)中,中
9、, 由于:由于:Sno Grade,Cno Grade, 因此:因此:(Sno, Cno) Grade 现在学习的是第13页,共102页四、传递函数依赖四、传递函数依赖定义定义5.3 在关系模式在关系模式R(U)中,如果中,如果XY,YZ,且,且Y X,YX,则称,则称Z传递函数依赖于传递函数依赖于X。注注: 如果如果YX, 即即XY,则,则Z直接依赖于直接依赖于X。例例: 在关系在关系Std(Sno, Sdept, Mname)中,有:中,有:Sno Sdept,Sdept Mname Mname传递函数依赖于传递函数依赖于Sno现在学习的是第14页,共102页码码定义定义5.4 设设K为关
10、系模式为关系模式R中的属性或属性组合。若中的属性或属性组合。若K U,则,则K称为称为R的一个侯选码(的一个侯选码(Candidate Key)。若关系模式)。若关系模式R有多个候选码,则选定其中的一个做为主码(有多个候选码,则选定其中的一个做为主码(Primary key)。)。主属性与非主属性主属性与非主属性ALL KEY现在学习的是第15页,共102页外部码外部码关系模式关系模式 R R 中属性或属性组中属性或属性组X X 并非并非 R R的码,但的码,但 X X 是另一个关系模式的码,则称是另一个关系模式的码,则称 X X 是是R R 的外部的外部码(码(Foreign keyFore
11、ign key)也称外码)也称外码主码又和外部码一起提供了表示关系间联系的手段主码又和外部码一起提供了表示关系间联系的手段。现在学习的是第16页,共102页四、关系模式的规范形式四、关系模式的规范形式范式是符合某一种级别的关系模式的集合。范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求。满足不同程度要关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。求的为不同范式。范式的种类:范式的种类:第一范式第一范式(1NF)第二范式第二范式(2NF)第三范式第三范式(3NF)BC范式范式(BCNF)第四范式第四范式(4NF)第五范式第五范式(5NF)现在学习的
12、是第17页,共102页四、关系模式的规范形式四、关系模式的规范形式各种范式之间存在联系:各种范式之间存在联系:某一关系模式某一关系模式R为第为第n范式,可简记为范式,可简记为RnNF。NF5NF4BCNFNF3NF2NF1现在学习的是第18页,共102页四、关系模式的规范形式四、关系模式的规范形式1、第一范式(、第一范式(1NF)2、第二范式(、第二范式(2NF)3、 第三范式(第三范式(3NF)4、 BC范式(范式(BCNF)5、 多值依赖与第四范式(多值依赖与第四范式(4NF)6、 规范化规范化现在学习的是第19页,共102页第一范式第一范式 1NF1NF1NF的定义的定义如果一个关系模式
13、如果一个关系模式R的所有属性都是不可分的基本数据项,的所有属性都是不可分的基本数据项,则则R1NF。第一范式是对关系模式的最起码的要求。不满足第一范式的第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。数据库模式不能称为关系数据库。但是满足第一范式的关系模式并不一定是一个好的关系但是满足第一范式的关系模式并不一定是一个好的关系模式。模式。现在学习的是第20页,共102页1NF1NF例例: 关系模式关系模式 SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生住在同一个地方。为学生住处,假设每个系的学生住在同一个
14、地方。函数依赖包括:函数依赖包括: (Sno, Cno) f Grade Sno Sdept (Sno, Cno) P Sdept Sno Sloc (Sno, Cno) P Sloc Sdept Sloc现在学习的是第21页,共102页 1NF1NFSLC的码为的码为(Sno, Cno)SLC满足第一范式。满足第一范式。 非主属性非主属性Sdept和和Sloc部分函数依赖于码部分函数依赖于码(Sno, Cno)SnoCnoGradeSdeptSlocSLC现在学习的是第22页,共102页SLCSLC不是一个好的关系模式不是一个好的关系模式存在的问题存在的问题:插入异常插入异常删除异常删除异常
15、数据冗余度大数据冗余度大(4) 修改复杂修改复杂 现在学习的是第23页,共102页 1NF1NF原因原因 Sdept、 Sloc部分函数依赖于码。部分函数依赖于码。解决方法解决方法 SLC分解为两个关系模式,以消除这些部分函数依赖分解为两个关系模式,以消除这些部分函数依赖 SC(Sno, Cno, Grade) SL(Sno, Sdept, Sloc)现在学习的是第24页,共102页2NF2NF函数依赖图函数依赖图:SnoCnoGradeSCSLSnoSdeptSloc现在学习的是第25页,共102页第二范式第二范式 2NF2NF2NF的定义的定义定义定义 若关系模式若关系模式R1NF,并且每
16、一个非主属性都完全,并且每一个非主属性都完全函数依赖于函数依赖于R的码,则的码,则R2NF。例:例:SLC(Sno, Sdept, Sloc, Cno, Grade) 1NF SLC(Sno, Sdept, Sloc, Cno, Grade) 2NF SC(Sno, Cno, Grade) 2NF SL(Sno, Sdept, Sloc) 2NF现在学习的是第26页,共102页 第二范式(续)第二范式(续)采用投影分解法将一个采用投影分解法将一个1NF的关系分解为多个的关系分解为多个2NF的关的关系,可以在一定程度上减轻原系,可以在一定程度上减轻原1NF关系中存在的插入异常关系中存在的插入异常
17、、删除异常、数据冗余度大、修改复杂等问题。、删除异常、数据冗余度大、修改复杂等问题。将一个将一个1NF关系分解为多个关系分解为多个2NF的关系,并不能完全消除关的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。系模式中的各种异常情况和数据冗余。现在学习的是第27页,共102页2NF2NF例:例:2NF关系模式关系模式SL(Sno, Sdept, Sloc)中中函数依赖:函数依赖: SnoSdept SdeptSloc SnoSlocSloc传递函数依赖于传递函数依赖于Sno,即,即SL中存在非主中存在非主属性对码的传递函数依赖。属性对码的传递函数依赖。现在学习的是第28页,共102页
18、2NF2NF函数依赖图函数依赖图:SLSnoSdeptSloc现在学习的是第29页,共102页 2NF2NF解决方法解决方法 采用投影分解法,把采用投影分解法,把SL分解为两个关系模式,以消除传递函分解为两个关系模式,以消除传递函数依赖:数依赖: SD(Sno, Sdept) DL(Sdept, Sloc)SD的码为的码为Sno, DL的码为的码为Sdept。现在学习的是第30页,共102页 3NF3NFSD的码为的码为Sno, DL的码为的码为Sdept。SnoSdeptSDSdeptSlocDL现在学习的是第31页,共102页第三范式第三范式3NF3NF3NF的定义的定义定义定义 关系模式
19、关系模式R 中若不存在这样的码中若不存在这样的码X、属性组、属性组Y及非主属性及非主属性Z(Z Y), 使得使得XY,Y X,YZ,成,成立,则称立,则称R 3NF。例,例, SL(Sno, Sdept, Sloc) 2NF SL(Sno, Sdept, Sloc) 3NF SD(Sno, Sdept) 3NF DL(Sdept, Sloc) 3NF现在学习的是第32页,共102页 3NF3NF若若R3NF,则,则R的每一个非主属性既不部分函数依赖于候选码也的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。不传递函数依赖于候选码。如果如果R3NF,则,则R也是也是2NF。采用投
20、影分解法将一个采用投影分解法将一个2NF的关系分解为多个的关系分解为多个3NF的关系,可以在一的关系,可以在一定程度上解决原定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。、修改复杂等问题。 将一个将一个2NF关系分解为多个关系分解为多个3NF的关系后,并不能完全消除关系的关系后,并不能完全消除关系模式中的各种异常情况和数据冗余。模式中的各种异常情况和数据冗余。现在学习的是第33页,共102页以下数据表为几范式以下数据表为几范式S(sno,sname,cno,cname,grade)图书表图书表(书号书号,名字名字,
21、书类别书类别,类别名字类别名字)学生表学生表(学号学号,姓名姓名,班级班级,辅导员辅导员)现在学习的是第34页,共102页BCBC范式(范式(BCNFBCNF)定义定义5.9 设关系模式设关系模式R1NF,如果对于,如果对于R的每个函数依的每个函数依赖赖XY,若,若Y不属于不属于X,则,则X必含有候选码,那么必含有候选码,那么RBCNF。若若RBCNF 每一个决定属性集(因素)都包含(候选)码每一个决定属性集(因素)都包含(候选)码R中的所有属性(主,非主属性)都完全函数依赖于码中的所有属性(主,非主属性)都完全函数依赖于码R3NF(证明)(证明)若若R3NF 则则 R不一定不一定BCNF现在
22、学习的是第35页,共102页 BCNFBCNF例:在关系模式例:在关系模式STJ(S,T,J)中,)中,S表示学生,表示学生,T表示表示教师,教师,J表示课程。表示课程。每一教师只教一门课。每门课由若干教师教,某一学生选定某门课每一教师只教一门课。每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称所选课的名称 : (S,J)T,(S,T)J,TJ现在学习的是第36页,共102页 BCNFBCNF SJTSTJSTJ现在学习的是第37页,共102页BCNFBCNFSTJ3NF (S
23、,J)和和(S,T)都可以作为候选码都可以作为候选码 S、T、J都是主属性都是主属性STJBCNFTJ,T是决定属性集,是决定属性集,T不是候选码不是候选码现在学习的是第38页,共102页BCNFBCNF解决方法:将解决方法:将STJ分解为二个关系模式分解为二个关系模式: SJ(S,J) BCNF, TJ(T,J) BCNF 没有没有任何属性任何属性对码的部分函数依赖和传递函数依赖对码的部分函数依赖和传递函数依赖SJSTTJTJ现在学习的是第39页,共102页3NF3NF与与BCNFBCNF的关系的关系如果关系模式如果关系模式RBCNF, 必定有必定有R3NF如果如果R3NF,且,且R只有一个
24、候选码,只有一个候选码, 则则R必属于必属于BCNF。现在学习的是第40页,共102页复习复习1NF:每个表的每个属性是不可再分的每个表的每个属性是不可再分的”最小最小列名列名”2NF:属于属于1NF,且表中不存在且表中不存在”非主属性非主属性”对对码的码的”部分函数依赖部分函数依赖”3NF:属于属于2NF且不存在且不存在”非主属性非主属性”对码的对码的”传递函数依赖传递函数依赖”现在学习的是第41页,共102页判定范式的技巧判定范式的技巧1.主码为单列属性的表一定是主码为单列属性的表一定是2NF2.属于属于2NF且非主属性只有且非主属性只有0-1个,一定是个,一定是3NF3.二元关系一定是二
25、元关系一定是3NF4.只要是抽象的关系一定是只要是抽象的关系一定是1NF现在学习的是第42页,共102页 例例:2004年数据库系统工程师考试题:年数据库系统工程师考试题:答:答:D现在学习的是第43页,共102页BCNFBCNF的关系模式所具有的性质的关系模式所具有的性质 所有非主属性都完全函数依赖于每个候选码所有非主属性都完全函数依赖于每个候选码 所有主属性都完全函数依赖于每个不包含它的候选码所有主属性都完全函数依赖于每个不包含它的候选码 没有任何属性完全函数依赖于非码的任何一组属性没有任何属性完全函数依赖于非码的任何一组属性现在学习的是第44页,共102页三、数据依赖的公理系统三、数据依
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 模式 设计 理论
限制150内