版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4章章 关系数据库设计实际关系数据库设计实际l问题的提出问题的提出l关系数据库的根本概念关系数据库的根本概念l关系模型关系模型l关系数据库的规范言语关系数据库的规范言语l关系数据库逻辑设计关系数据库逻辑设计l针对一个详细问题,应如何构造一个适针对一个详细问题,应如何构造一个适宜于它的数据方式,即应该构造几个关宜于它的数据方式,即应该构造几个关系,每个关系由哪些属性组成等。系,每个关系由哪些属性组成等。l数据库逻辑设计的工具数据库逻辑设计的工具关系数据库的关系数据库的规范化实际规范化实际第第4章章 关系数据库设计实际关系数据库设计实际4.1 数据依赖数据依赖4.2 范式范式4.3 关系方式的
2、规范化关系方式的规范化第第4章章 关系数据库设计实际关系数据库设计实际4.1 数据依赖数据依赖4.2 范式范式4.3 关系方式的规范化关系方式的规范化4.1 数据依赖数据依赖内容提要内容提要什么是数据依赖什么是数据依赖数据依赖对关系方式有什么影响数据依赖对关系方式有什么影响数据依赖的方式化定义数据依赖的方式化定义4.1 数据依赖数据依赖4.1.1 关系方式中的数据依赖关系方式中的数据依赖4.1.2 数据依赖对关系方式的影响数据依赖对关系方式的影响4.1.3 有关概念有关概念4.1 数据依赖数据依赖4.1.1 关系方式中的数据依赖关系方式中的数据依赖4.1.2 数据依赖对关系方式的影响数据依赖对
3、关系方式的影响4.1.3 有关概念有关概念4.1.1 关系方式中的数据依赖关系方式中的数据依赖一、概念回想一、概念回想二、关系方式的方式化定义二、关系方式的方式化定义三、什么是数据依赖三、什么是数据依赖四、关系方式的简化表示四、关系方式的简化表示一、概念回想一、概念回想l关系:描画实体及其属性、实体间的联络。关系:描画实体及其属性、实体间的联络。l从方式上看,它是一张二维表,是所涉及属性从方式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。的笛卡尔积的一个子集。l关系方式:用来定义关系。关系方式:用来定义关系。l关系数据库:基于关系模型的数据库,利用关关系数据库:基于关系模型的数据库,
4、利用关系来描画现实世界。系来描画现实世界。l从方式上看,它由一组关系组成。从方式上看,它由一组关系组成。l关系数据库的方式:定义这组关系的关系方式关系数据库的方式:定义这组关系的关系方式的全体。的全体。二、关系方式的方式化定义二、关系方式的方式化定义关系方式由五部分组成,即它是一个五元组:关系方式由五部分组成,即它是一个五元组: R(U, D, DOM, F)R: 关系名关系名U: 组成该关系的属性名集合组成该关系的属性名集合D: 属性组属性组U中属性所来自的域中属性所来自的域DOM:属性向域的映象集合:属性向域的映象集合F: 属性间数据的依赖关系集合。即限定属性间数据的依赖关系集合。即限定
5、了组成关系的各个元组必需满足的完了组成关系的各个元组必需满足的完 整性约束条件。整性约束条件。三、什么是数据依赖三、什么是数据依赖1. 完好性约束的表现方式完好性约束的表现方式限定属性取值范围:例如学生成果必限定属性取值范围:例如学生成果必需在需在0-100之间之间定义属性值间的相互关连主要表达定义属性值间的相互关连主要表达于值的相等与否,这就是数据依于值的相等与否,这就是数据依赖,它是数据库方式设计的关键。赖,它是数据库方式设计的关键。什么是数据依赖续什么是数据依赖续2. 数据依赖数据依赖是经过一个关系中属性间值的相等与是经过一个关系中属性间值的相等与否表达出来的数据间的相互关系否表达出来的
6、数据间的相互关系是现实世界属性间相互联络的笼统是现实世界属性间相互联络的笼统是数据内在的性质是数据内在的性质是语义的表达是语义的表达什么是数据依赖续什么是数据依赖续3. 数据依赖的主要类型数据依赖的主要类型函数依赖函数依赖Functional Dependency,简记为简记为FD多值依赖多值依赖Multivalued Dependency,简记为简记为MVD衔接依赖衔接依赖四、关系方式的简化表示四、关系方式的简化表示在关系方式在关系方式R(U, D, DOM, F)中,影响数中,影响数据库方式设计的主要是据库方式设计的主要是U和和F,D和和DOM对其影响不大,为了方便讨论,我们将对其影响不大
7、,为了方便讨论,我们将关系方式简化为一个三元组:关系方式简化为一个三元组: R(U, F)当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时,时,r称称为关系方式为关系方式R(U, F)的一个关系。的一个关系。5.1 数据依赖数据依赖5.1.1 关系方式中的数据依赖关系方式中的数据依赖5.1.2 数据依赖对关系方式的影响数据依赖对关系方式的影响5.1.3 有关概念有关概念 5.1.2 数据依赖对关系方式的影数据依赖对关系方式的影响响例:建立一个描画学校的数据库。例:建立一个描画学校的数据库。 涉及的对象包括:涉及的对象包括:学生的学号学生的学号Sno所在系所在系Sdept系主任姓名系主任
8、姓名Mname课程名课程名Cname成果成果Grade数据依赖对关系方式的影响续数据依赖对关系方式的影响续 假设学校的数据库方式由一个单一的关假设学校的数据库方式由一个单一的关系方式系方式Student构成,构成, 那么该关系方式的属性集合为:那么该关系方式的属性集合为:U Sno, Sdept, Mname, Cname, Grade 数据依赖对关系方式的影响续数据依赖对关系方式的影响续现实世界的知现实通知我们:现实世界的知现实通知我们: 一个系有假设干学生,一个系有假设干学生, 但一个学生只属于但一个学生只属于一个系;一个系; 一个系只需一名主任;一个系只需一名主任; 一个学生可以选修多门
9、课程,一个学生可以选修多门课程, 每门课程有每门课程有假设干学生选修;假设干学生选修; 每个学生所学的每门课程都有一个成果。每个学生所学的每门课程都有一个成果。 数据依赖对关系方式的影响续数据依赖对关系方式的影响续由此可得到属性组由此可得到属性组U上的一组函数依赖上的一组函数依赖F: F Sno Sdept, Sdept Mname, (Sno, Cname) Grade SnoCnameSdeptMnameGrade数据依赖对关系方式的影响续数据依赖对关系方式的影响续关系方式关系方式Student中存在的问题:中存在的问题: 数据冗余太大数据冗余太大浪费大量的存储空间浪费大量的存储空间 例:
10、每一个系主任的姓名反复出现,反复次数例:每一个系主任的姓名反复出现,反复次数与该系一切学生的一切课程成果出现次数一样。与该系一切学生的一切课程成果出现次数一样。数据依赖对关系方式的影响续数据依赖对关系方式的影响续 更新异常更新异常Update Anomalies数据冗余数据冗余 ,更新数据时,维护数据完好性代价,更新数据时,维护数据完好性代价大。大。例:某系改换系主任后,系统必需修正与该系例:某系改换系主任后,系统必需修正与该系学生有关的每一个元组。学生有关的每一个元组。数据依赖对关系方式的影响续数据依赖对关系方式的影响续 插入异常插入异常Insertion Anomalies该插的数据插不进
11、去该插的数据插不进去 例,假设一个系刚成立,尚无学生,我们就无例,假设一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。法把这个系及其系主任的信息存入数据库。数据依赖对关系方式的影响续数据依赖对关系方式的影响续 删除异常删除异常Deletion Anomalies不该删除的数据不得不删不该删除的数据不得不删例,假设某个系的学生全部毕业了,例,假设某个系的学生全部毕业了, 我们在删我们在删除该系学生信息的同时,把这个系及其系主任除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。的信息也丢掉了。数据依赖对关系方式的影响续数据依赖对关系方式的影响续结论:结论:Student
12、关系方式不是一个好的方式。关系方式不是一个好的方式。一个一个“好的方式该当不会发生插入异常、删除好的方式该当不会发生插入异常、删除异常、更新异常,数据冗余应尽能够少。异常、更新异常,数据冗余应尽能够少。缘由:由存在于方式中的某些数据依赖引起的。缘由:由存在于方式中的某些数据依赖引起的。处理方法:经过分解关系方式来消除其中不适宜处理方法:经过分解关系方式来消除其中不适宜 的数据依赖。的数据依赖。数据依赖对关系方式的影响续数据依赖对关系方式的影响续 规范化实际正是用来改造关系方式,经过分解规范化实际正是用来改造关系方式,经过分解关系方式来消除其中不适宜的数据依赖,以处关系方式来消除其中不适宜的数据
13、依赖,以处理插入异常、删除异常、更新异常和数据冗余理插入异常、删除异常、更新异常和数据冗余问题。问题。5.1 数据依赖数据依赖5.1.1 关系方式中的数据依赖关系方式中的数据依赖5.1.2 数据依赖对关系方式的影响数据依赖对关系方式的影响5.1.3 有关概念有关概念5.1.3 有关概念有关概念一、函数依赖一、函数依赖二、平凡函数依赖与非平凡函数依赖二、平凡函数依赖与非平凡函数依赖三、完全函数依赖与部分函数依赖三、完全函数依赖与部分函数依赖四、传送函数依赖四、传送函数依赖五、码五、码一、函数依赖一、函数依赖定义定义5.1 设设R(U)是一个属性集是一个属性集U上的关系方上的关系方式,式,X和和Y
14、是是U的子集。假设对于的子集。假设对于R(U)的的恣意一个能够的关系恣意一个能够的关系r,r中不能够存在中不能够存在两个元组在两个元组在X上的属性值相等,上的属性值相等, 而在而在Y上上的属性值不等,的属性值不等, 那么称那么称“X函数确定函数确定Y或或“Y函数依赖于函数依赖于X,记作,记作XY。 X称称为这个函数依赖的决议属性集为这个函数依赖的决议属性集(Determinant)。函数依赖续函数依赖续阐明:阐明:1. 函数依赖不是指关系方式函数依赖不是指关系方式R的某个或某些关系的某个或某些关系实例满足的约束条件,而是指实例满足的约束条件,而是指R的一切关系实的一切关系实例均要满足的约束条件
15、。例均要满足的约束条件。2. 函数依赖是语义范畴的概念。只能根据数据的函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。语义来确定函数依赖。 例如例如“姓名姓名年龄这个函数依赖只需在不允年龄这个函数依赖只需在不允许有同名人的条件下成立许有同名人的条件下成立函数依赖续函数依赖续3. 数据库设计者可以对现实世界作强迫的规定。数据库设计者可以对现实世界作强迫的规定。例如设计者可以强行规定不允许同名人出现,例如设计者可以强行规定不允许同名人出现,因此使函数依赖因此使函数依赖“姓名姓名年龄成立。但所插年龄成立。但所插入的元组必需满足规定的函数依赖,假设发现入的元组必需满足规定的函数依赖,假设发
16、现有同名人存在,有同名人存在, 那么回绝装入该元组。那么回绝装入该元组。 4. 假设假设XY,并且,并且YX, 那么记为那么记为XY。5. 假设假设Y不函数依赖于不函数依赖于X, 那么记为那么记为XY。函数依赖续函数依赖续例例: Student(Sno, Sname, Ssex, Sage, Sdept) 假设不允许重名,那么有假设不允许重名,那么有:Sno Ssex, Sno SageSno Sdept, Sno SnameSname Ssex, Sname SageSname Sdept但但Ssex Sage, Ssex Sdept, 二、平凡函数依赖与非平凡函数依赖二、平凡函数依赖与非平
17、凡函数依赖定义定义5.2 在关系方式在关系方式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平凡函数依赖与非平凡函数依赖续平凡函数依赖与非平凡函数依赖续 对于任一关系方式,平凡函数依赖都对于任一关系方式,平凡函
18、数依赖都是必然成立的,它不反映新的语义,是必然成立的,它不反映新的语义,因此假设不特别声明,因此假设不特别声明, 我们总是讨论我们总是讨论非平凡函数依赖。非平凡函数依赖。三、完全函数依赖与部分函数依赖三、完全函数依赖与部分函数依赖定义定义5.3 在关系方式在关系方式R(U)中,假设中,假设XY,并且对于并且对于X的任何一个真子集的任何一个真子集X,都有,都有 X Y, 那么称那么称Y完全函数依赖于完全函数依赖于X,记,记作作X Y。假设。假设XY,但,但Y不完全函数不完全函数依赖于依赖于X,那么称,那么称Y部分函数依赖于部分函数依赖于X,记作记作 X P Y。完全函数依赖与部分函数依赖续完全函
19、数依赖与部分函数依赖续例例: 在关系在关系SC(Sno, Cno, Grade)中,有:中,有: 由于:由于:Sno Grade,Cno Grade, 因此:因此:(Sno, Cno) Grade 但:但:(Sno, Cno) P Sno, (Sno, Cno) P Cno完全函数依赖与部分函数依赖续完全函数依赖与部分函数依赖续 非平凡函数依赖必定是部分函数依赖非平凡函数依赖必定是部分函数依赖 平凡函数依赖也能够是部分函数依赖平凡函数依赖也能够是部分函数依赖 例例: Student(Sno, Sname, Ssex, Sage, Sdept) Sno Sname, Sno Ssex, Sno
20、Sage, Sno Sdept (Sno, Sname) P Sdept, (Sno, Ssex) P Sdept四、传送函数依赖四、传送函数依赖定义定义5.4 在关系方式在关系方式R(U)中,假设中,假设XY,YZ,且且Y X,YX,那么称,那么称Z传送函数依赖于传送函数依赖于X。注注: 假设假设YX, 即即XY,那么,那么Z直接依赖于直接依赖于X。例例: 在关系在关系Std(Sno, Sdept, Mname)中,有:中,有:Sno Sdept,Sdept Mname,Mname传送传送函数依赖于函数依赖于Sno。五、码五、码定义定义5.5 设设K为关系方式为关系方式R中的属性或属性中的属
21、性或属性组合。假设组合。假设KU,那么,那么K称为称为R的一个侯选码的一个侯选码Candidate Key。假设关系方式。假设关系方式R有多个候有多个候选码,那么选定其中的一个做为主码选码,那么选定其中的一个做为主码Primary key。码是关系方式中一个重要概念。码是关系方式中一个重要概念。候选码可以独一地标别关系的元组,是关系方式候选码可以独一地标别关系的元组,是关系方式中一组最重要的属性。中一组最重要的属性。主码又和外部码一同提供了一个表示关系间联络主码又和外部码一同提供了一个表示关系间联络的手段。的手段。第第4章章 关系数据库设计实际关系数据库设计实际4.1 数据依赖数据依赖4.2
22、范式范式4.3 关系方式的规范化关系方式的规范化4.2 范式范式4.2.1 第一范式第一范式1NF4.2.2 第二范式第二范式2NF4.2.3 第三范式第三范式3NF4.2.4 BC范式范式BCNF4.2.5 多值依赖与第四范式多值依赖与第四范式4NF4.2 范式范式l范式是符合某一种级别的关系方式的集合。范式是符合某一种级别的关系方式的集合。l关系数据库中的关系必需满足一定的要求。满关系数据库中的关系必需满足一定的要求。满足不同程度要求的为不同范式。足不同程度要求的为不同范式。l范式的种类:范式的种类:l第一范式第一范式(1NF)l第二范式第二范式(2NF)l第三范式第三范式(3NF)lBC
23、范式范式(BCNF)l第四范式第四范式(4NF)l第五范式第五范式(5NF)范式续范式续l各种范式之间存在联络:各种范式之间存在联络:l某一关系方式某一关系方式R为第为第n范式,可简记范式,可简记为为RnNF。NF5NF4BCNFNF3NF2NF14.2 范式范式4.2.1 第一范式第一范式1NF4.2.2 第二范式第二范式2NF4.2.3 第三范式第三范式3NF4.2.4 BC范式范式BCNF4.2.5 多值依赖与第四范式多值依赖与第四范式4NF4.2.1 第一范式第一范式1NFl1NF的定义的定义l定义定义5.6 假设一个关系方式假设一个关系方式R的一切属性都的一切属性都是不可分的根本数据
24、项,那么是不可分的根本数据项,那么R1NF。l第一范式是对关系方式的最起码的要求。不满第一范式是对关系方式的最起码的要求。不满足第一范式的数据库方式不能称为关系数据库。足第一范式的数据库方式不能称为关系数据库。l但是满足第一范式的关系方式并不一定是一个但是满足第一范式的关系方式并不一定是一个好的关系方式。好的关系方式。第一范式续第一范式续例例: 关系方式关系方式 SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生住在同一为学生住处,假设每个系的学生住在同一个地方。个地方。函数依赖包括:函数依赖包括: (Sno, Cno) f Grade S
25、no Sdept (Sno, Cno) P Sdept Sno Sloc (Sno, Cno) P Sloc Sdept Sloc第一范式续第一范式续SLC的码为的码为(Sno, Cno)SnoCnoGradeSdeptSlocSLC第一范式续第一范式续l结论结论: l1. SLC满足第一范式。满足第一范式。l2. 非主属性非主属性Sdept和和Sloc部分函数依赖于码部分函数依赖于码(Sno, Cno)。lSLC存在的问题存在的问题l (1) 插入异常插入异常l假设假设Sno95102,SdeptIS,SlocN的的学生还未选课,因课程号是主属性,因此该学学生还未选课,因课程号是主属性,因此
26、该学生的信息无法插入生的信息无法插入SLC。l 第一范式续第一范式续(2) 删除异常删除异常 假定某个学生本来只选修了假定某个学生本来只选修了3号课程这一门号课程这一门课。如今因身体不适,他连课。如今因身体不适,他连3号课程也不选号课程也不选修了。因课程号是主属性,此操作将导致该修了。因课程号是主属性,此操作将导致该学生信息的整个元组都要删除。学生信息的整个元组都要删除。(3) 数据冗余度大数据冗余度大 假设一个学生选修了假设一个学生选修了10门课程,那么他的门课程,那么他的Sdept和和Sloc值就要反复存储了值就要反复存储了10次。次。 第一范式续第一范式续(4) 修正复杂修正复杂 例如学
27、生转系,在修正此学生元组的例如学生转系,在修正此学生元组的Sdept值的同时,还能够需求修正住处值的同时,还能够需求修正住处Sloc。假设这个学生选修了假设这个学生选修了K门课,那么必需无脱门课,那么必需无脱漏地修正漏地修正K个元组中全部个元组中全部Sdept、Sloc信息。信息。因此因此SLC不是一个好的关系方式。不是一个好的关系方式。第一范式续第一范式续l缘由缘由l Sdept、 Sloc部分函数依赖于码。部分函数依赖于码。l处理方法处理方法l 采用投影分解法,把采用投影分解法,把SLC分解为两个关系方分解为两个关系方式,以消除这些部分函数依赖。式,以消除这些部分函数依赖。 l SCSno
28、, Cno, Gradel SLSno, Sdept, Sloc第一范式续第一范式续SLC的码为的码为(Sno, Cno)SnoCnoGradeSdeptSlocSLC第一范式续第一范式续函数依赖图:函数依赖图:SnoCnoGradeSCSLSnoSdeptSloc第一范式续第一范式续在在SC和和SL中,非主属性都完全函数依赖于码中,非主属性都完全函数依赖于码了。从而使上述四个问题在一定程度上得到了了。从而使上述四个问题在一定程度上得到了一定的处理:一定的处理:(1) 由于学生选修课程的情况与学生的根本情况由于学生选修课程的情况与学生的根本情况是分开存储在两个关系中的,在是分开存储在两个关系中
29、的,在SL关系中可以关系中可以插入尚未选课的学生。插入尚未选课的学生。第一范式续第一范式续(2) 删除一个学生的一切选课记录,只是删除一个学生的一切选课记录,只是SC关系关系中没有关于该学生的记录了,中没有关于该学生的记录了,SL关系中关于该关系中关于该学生的记录不受影响。学生的记录不受影响。(3) 不论一个学生选多少门课程,他的不论一个学生选多少门课程,他的Sdept和和Sloc值都只存储值都只存储1次。这就大大降低了数据冗余。次。这就大大降低了数据冗余。(4) 学生转系只需修正学生转系只需修正SL关系中该学生元组的关系中该学生元组的Sdept值和值和Sloc值,由于值,由于Sdept、 S
30、loc并未反复并未反复存储,因此减化了修正操作。存储,因此减化了修正操作。4.2 范式范式4.2.1 第一范式第一范式1NF4.2.2 第二范式第二范式2NF4.2.3 第三范式第三范式3NF4.2.4 BC范式范式BCNF4.2.5 多值依赖与第四范式多值依赖与第四范式4NF4.2.2 第二范式第二范式2NFl2NF的定义的定义l定义定义5.7 假设关系方式假设关系方式R1NF,并且每一个非主属性都完全函数依并且每一个非主属性都完全函数依赖于赖于R的码,那么的码,那么R2NF。l例:例:SLC(Sno, Sdept, Sloc, Cno, Grade) 1NFl SCSno, Cno, Gr
31、ade 2NFl SLSno, Sdept, Sloc 2NF 第二范式续第二范式续l采用投影分解法将一个采用投影分解法将一个1NF的关系分解为多个的关系分解为多个2NF的关系,可以在一定程度上减轻原的关系,可以在一定程度上减轻原1NF关关系中存在的插入异常、删除异常、数据冗余度系中存在的插入异常、删除异常、数据冗余度大、修正复杂等问题。大、修正复杂等问题。l将一个将一个1NF关系分解为多个关系分解为多个2NF的关系,并不的关系,并不能完全消除关系方式中的各种异常情况和数据能完全消除关系方式中的各种异常情况和数据冗余。冗余。 第二范式续第二范式续例:例:2NF关系方式关系方式SL(Sno, S
32、dept, Sloc)中中函数依赖:函数依赖: SnoSdept SdeptSloc SnoSlocSLSnoSdeptSlocSloc传送函数依赖于传送函数依赖于Sno,即,即SL中存在非中存在非主属性对码的传送函数依赖。主属性对码的传送函数依赖。 第二范式续第二范式续lSL关系存在的问题:关系存在的问题:l(1) 插入异常插入异常l假设某个系因种种缘由例如刚刚成立,假设某个系因种种缘由例如刚刚成立,目前暂时没有在校学生,我们就无法把这个系目前暂时没有在校学生,我们就无法把这个系的信息存入数据库。的信息存入数据库。ll(2) 删除异常删除异常l假设某个系的学生全部毕业了,我们在删假设某个系的
33、学生全部毕业了,我们在删除该系学生信息的同时,把这个系的信息也丢除该系学生信息的同时,把这个系的信息也丢掉了。掉了。 第二范式续第二范式续(3) 数据冗余度大数据冗余度大每一个系的学生都住在同一个地方,关于系的每一个系的学生都住在同一个地方,关于系的住处的信息却反复出现,反复次数与该系学生住处的信息却反复出现,反复次数与该系学生人数一样。人数一样。 (4) 修正复杂修正复杂 当学校调整学生住处时,由于关于每个系的住当学校调整学生住处时,由于关于每个系的住处信息是反复存储的,修正时必需同时更新该处信息是反复存储的,修正时必需同时更新该系一切学生的系一切学生的Sloc属性值。属性值。所以所以SL仍
34、不是一个好的关系方式。仍不是一个好的关系方式。 第二范式续第二范式续l缘由缘由lSloc传送函数依赖于传送函数依赖于Snol处理方法处理方法l 采用投影分解法,把采用投影分解法,把SL分解为两个关系方式,分解为两个关系方式,以消除传送函数依赖:以消除传送函数依赖:l SDSno, Sdeptl DLSdept, SloclSD的码为的码为Sno, DL的码为的码为Sdept。SLSnoSdeptSloc 第二范式续第二范式续SD的码为的码为Sno, DL的码为的码为Sdept。SnoSdeptSDSdeptSlocDL 第二范式续第二范式续在分解后的关系方式中既没有非主属性对码的在分解后的关系
35、方式中既没有非主属性对码的部分函数依赖也没有非主属性对码的传送函数部分函数依赖也没有非主属性对码的传送函数依赖,在一定程度上处理了上述四个问题:依赖,在一定程度上处理了上述四个问题:(1) DL关系中可以插入无在校学生的系的信息。关系中可以插入无在校学生的系的信息。(2) 某个系的学生全部毕业了,只是删除某个系的学生全部毕业了,只是删除SD关系关系中的相应元组,中的相应元组,DL关系中关于该系的信息仍关系中关于该系的信息仍存在。存在。(3) 关于系的住处的信息只在关于系的住处的信息只在DL关系中存储一次。关系中存储一次。(4) 当学校调整某个系的学生住处时,只需修正当学校调整某个系的学生住处时
36、,只需修正DL关系中一个相应元组的关系中一个相应元组的Sloc属性值。属性值。4.2 范式范式4.2.1 第一范式第一范式1NF4.2.2 第二范式第二范式2NF4.2.3 第三范式第三范式3NF4.2.4 BC范式范式BCNF4.2.5 多值依赖与第四范式多值依赖与第四范式4NF 4.2.3 第三范式第三范式3NFl3NF的定义的定义l定义定义5.8 关系方式关系方式R 中假设不存在中假设不存在这样的码这样的码X、属性组、属性组Y及非主属性及非主属性ZZ Y, 使得使得XY,Y X,YZ,成立,那么称,成立,那么称R 3NF。l例,例, SL(Sno, Sdept, Sloc) 2NFl S
37、DSno, Sdept 3NFl DLSdept, Sloc 3NFl 学生学生(学号,姓名,宿舍楼,宿舍号学号,姓名,宿舍楼,宿舍号) 3NF第三范式续第三范式续l假设假设R3NF,那么,那么R的每一个非主属性既不部的每一个非主属性既不部分函数依赖于候选码也不传送函数依赖于候选分函数依赖于候选码也不传送函数依赖于候选码。码。l假设假设R3NF,那么,那么R也是也是2NF。l采用投影分解法将一个采用投影分解法将一个2NF的关系分解为多个的关系分解为多个3NF的关系,可以在一定程度上处理原的关系,可以在一定程度上处理原2NF关关系中存在的插入异常、删除异常、数据冗余度系中存在的插入异常、删除异常
38、、数据冗余度大、修正复杂等问题。大、修正复杂等问题。l 将一个将一个2NF关系分解为多个关系分解为多个3NF的关系后,并的关系后,并不能完全消除关系方式中的各种异常情况和数不能完全消除关系方式中的各种异常情况和数据冗余。据冗余。第三范式续第三范式续例:在关系方式例:在关系方式STJS,T,J中,中,S表示学生,表示学生,T表示教师,表示教师,J表示课程。表示课程。函数依赖:函数依赖:假设每一教师只教一门课。每门课由假设干教假设每一教师只教一门课。每门课由假设干教师教,但某一学生选定某门课,就确定了一个师教,但某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确固定的教师。某
39、个学生选修某个教师的课就确定了所选课的称号。于是有:定了所选课的称号。于是有: (S,J)T,(S,T)J,TJ第三范式续第三范式续 SJTSTJSTJ第三范式续第三范式续l(S,J)和和(S,T)都可以作为候选码。都可以作为候选码。l lSTJ3NFl lTJ,即,即T是决议属性集,可是是决议属性集,可是T只只是主属性,它既不是候选码,也不是主属性,它既不是候选码,也不包含候选码。包含候选码。 第三范式续第三范式续l存在的问题:存在的问题:l(1) 插入异常插入异常l假设某个教师开设了某门课程,但尚未有假设某个教师开设了某门课程,但尚未有学生选修,那么有关信息也无法存入数据库中。学生选修,那
40、么有关信息也无法存入数据库中。l第三范式续第三范式续(2) 删除异常删除异常假设选修过某门课程的学生全部毕业了,在删假设选修过某门课程的学生全部毕业了,在删除这些学生元组的同时,相应教师开设该门课除这些学生元组的同时,相应教师开设该门课程的信息也同时丢掉了。程的信息也同时丢掉了。(3) 数据冗余度大数据冗余度大虽然一个教师只教一门课,但每个选修该教师虽然一个教师只教一门课,但每个选修该教师该门课程的学生元组都要记录这一信息。该门课程的学生元组都要记录这一信息。第三范式续第三范式续(4) 修正复杂修正复杂某个教师开设的某门课程改名后,一切选修了某个教师开设的某门课程改名后,一切选修了该教师该门课
41、程的学生元组都要进展相应修正。该教师该门课程的学生元组都要进展相应修正。因此虽然因此虽然STJ3NF,但它仍不是一个理想的,但它仍不是一个理想的关系方式。关系方式。第三范式续第三范式续l缘由:缘由:l主属性主属性J依赖于依赖于T,即主属性,即主属性J部分依赖于码部分依赖于码(S, T)。l处理方法:处理方法: l采用投影分解法,将采用投影分解法,将STJ分解为二个关系分解为二个关系方式:方式:l SJ(S,J)l TJ(T,J)第三范式续第三范式续 SJTSTJSTJ第三范式续第三范式续 SJ的码为的码为S,J,TJ的码为的码为T。SJSTTJTJ第三范式续第三范式续在分解后的关系方式中没有任
42、何属性对码的部在分解后的关系方式中没有任何属性对码的部分函数依赖和传送函数依赖。它处理了上述四分函数依赖和传送函数依赖。它处理了上述四个问题:个问题:(1)TJ关系中可以存储所开课程尚未有学生选修关系中可以存储所开课程尚未有学生选修的教师信息。的教师信息。(2) 选修过某门课程的学生全部毕业了,只是删选修过某门课程的学生全部毕业了,只是删除除SJ关系中的相应元组,不会影响关系中的相应元组,不会影响TJ关系中相关系中相应教师开设该门课程的信息。应教师开设该门课程的信息。第三范式续第三范式续(3) 关于每个教师开设课程的信息只在关于每个教师开设课程的信息只在TJ关系中关系中存储一次。存储一次。(4
43、) 某个教师开设的某门课程改名后,只需修正某个教师开设的某门课程改名后,只需修正TJ关系中的一个相应元组即可。关系中的一个相应元组即可。4.2 规范化规范化4.2.1 第一范式第一范式1NF4.2.2 第二范式第二范式2NF4.2.3 第三范式第三范式3NF4.2.4 BC范式范式BCNF4.2.5 多值依赖与第四范式多值依赖与第四范式4NF 4.2.4 BC范式范式BCNFlBCNFBoyce Codd Normal Form是由是由Boyce和和Codd提出的,比提出的,比3NF更进了一步。通更进了一步。通常以为常以为BCNF是修正的第三范式,所以有时也是修正的第三范式,所以有时也称为第三
44、范式。称为第三范式。lBCNF的定义的定义l定义定义5.9 设关系方式设关系方式R1NF,假,假设对于设对于R的每个函数依赖的每个函数依赖XY,假设,假设Y不属于不属于X,那么,那么X必含有候选码,那么必含有候选码,那么RBCNF。lBC范式续范式续换句话说,在关系方式换句话说,在关系方式R中,假中,假设每一个决议属性集都包含候选码,那设每一个决议属性集都包含候选码,那么么RBCNF。例:例: STJS,T,J 3NFSJS,J BCNFTJT,J BCNFBC范式续范式续l采用投影分解法将一个采用投影分解法将一个3NF的关系分解为多个的关系分解为多个BCNF的关系,可以进一步处理原的关系,可
45、以进一步处理原3NF关系中存关系中存在的插入异常、删除异常、数据冗余度大、修正在的插入异常、删除异常、数据冗余度大、修正复杂等问题。复杂等问题。lBCNF的关系方式所具有的性质的关系方式所具有的性质l 一切非主属性都完全函数依赖于每个候选码。一切非主属性都完全函数依赖于每个候选码。l 一切主属性都完全函数依赖于每个不包含它的一切主属性都完全函数依赖于每个不包含它的候选码。候选码。l 没有任何属性完全函数依赖于非码的任何一组没有任何属性完全函数依赖于非码的任何一组属性。属性。BC范式续范式续l 3NF与与BCNF的关系的关系l假设关系方式假设关系方式RBCNF,必定有,必定有R3NF。l假设假设
46、R3NF,且,且R只需一个候选码,那么只需一个候选码,那么R必必属于属于BCNF。l假设一个关系数据库中的一切关系方式都属于假设一个关系数据库中的一切关系方式都属于BCNF,那么在函数依赖范畴内,它已实现了,那么在函数依赖范畴内,它已实现了方式的彻底分解,到达了最高的规范化程度,方式的彻底分解,到达了最高的规范化程度,消除了插入异常和删除异常。消除了插入异常和删除异常。4.2 范式范式4.2.1 第一范式第一范式1NF4.2.2 第二范式第二范式2NF4.2.3 第三范式第三范式3NF4.2.4 BC范式范式BCNF4.2.5 多值依赖与第四范式多值依赖与第四范式4NF4.2.5 多值依赖与第
47、四范式多值依赖与第四范式4NFl例子例子l一、多值依赖一、多值依赖l二、第四范式二、第四范式4NF多值依赖与第四范式续多值依赖与第四范式续例子例子 属于属于BCNF的关系方式的关系方式:函数依赖函数依赖: 一个完美的关系方式一个完美的关系方式多值依赖多值依赖: 例例: 设学校中某一门课程由多个教师讲授,他们设学校中某一门课程由多个教师讲授,他们运用一样的一套参考书。运用一样的一套参考书。用关系方式用关系方式Teaching(C, T, B)来表示课程来表示课程C、教、教师师T和参考书和参考书B之间的关系。之间的关系。多值依赖与第四范式续多值依赖与第四范式续课课 程程 C教教 员员 T参参 考考
48、 书书 B 物理物理 数学数学 计算数学计算数学李李 勇勇王王 军军 李李 勇勇张张 平平 张张 平平周周 峰峰 普通物理学普通物理学光学原理光学原理 物理习题集物理习题集 数学分析数学分析微分方程微分方程高等代数高等代数 数学分析数学分析 表表5.1多值依赖与第四范式续多值依赖与第四范式续普通物理学普通物理学光学原理光学原理物理习题集物理习题集普通物理学普通物理学光学原理光学原理物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析微分方程微分方程高等代数高等代数李李 勇勇李李 勇勇李李 勇勇王王 军军王王 军军王王 军军李李 勇勇李李 勇勇李李 勇勇张张 平平
49、张张 平平张张 平平 物物 理理物物 理理物物 理理物物 理理物物 理理物物 理理数数 学学数数 学学数数 学学数数 学学数数 学学数数 学学 参考书B教员T课程C用二维表表示:表用二维表表示:表5.2 Teaching 多值依赖与第四范式续多值依赖与第四范式续lTeachingBCNF: Teach具有独一候选码具有独一候选码(C,T,B), 即全码。即全码。lTeaching方式中存在的问题方式中存在的问题l (1)数据冗余度大:有多少名任课教师,参考数据冗余度大:有多少名任课教师,参考书就要存储多少次。书就要存储多少次。l 多值依赖与第四范式续多值依赖与第四范式续lTeaching方式中
50、存在的问题方式中存在的问题l (2)添加操作复杂:当某一课程添加一名任课添加操作复杂:当某一课程添加一名任课教师时,该课程有多少本参照书,就必需插入教师时,该课程有多少本参照书,就必需插入多少个元组。多少个元组。l 例如物理课添加一名教师刘关,需求插入两例如物理课添加一名教师刘关,需求插入两个元组:个元组: l 物理,刘关,普通物理学,物理,刘关,普通物理学, l 物理,刘关,光学原理物理,刘关,光学原理多值依赖与第四范式续多值依赖与第四范式续lTeaching方式中存在的问题方式中存在的问题l(3)删除操作复杂:某一门课要去掉一本参考书,删除操作复杂:某一门课要去掉一本参考书,该课程有多少名
51、教师,就必需删除多少个元组。该课程有多少名教师,就必需删除多少个元组。l(4)修正操作复杂:某一门课要修正一本参考书,修正操作复杂:某一门课要修正一本参考书,该课程有多少名教师,就必需修正多少个元组。该课程有多少名教师,就必需修正多少个元组。l产生缘由产生缘由l参考书的取值和教师的取值是彼此独立毫参考书的取值和教师的取值是彼此独立毫无关系的,都只取决于课程名。无关系的,都只取决于课程名。 一、多值依赖一、多值依赖l定义定义l定义定义5.10 设设R(U)是一个属性集是一个属性集U上的上的一个关系方式,一个关系方式, X、 Y和和Z是是U的子集,的子集,并且并且ZUXY,多值依赖,多值依赖XY成
52、成立当且仅当对立当且仅当对R的任一关系的任一关系r,r在在X,Z上的每个值对应一组上的每个值对应一组Y的值,这组值的值,这组值仅仅决议于仅仅决议于X值而与值而与Z值无关。值无关。l 例例 TeachingC,T,B多值依赖续多值依赖续l平凡多值依赖和非平凡的多值依赖平凡多值依赖和非平凡的多值依赖l假设假设XY,而,而Z,那么称,那么称l XY为平凡的多值依赖。为平凡的多值依赖。l否那么称否那么称XY为非平凡的多值依为非平凡的多值依赖。赖。多值依赖续多值依赖续l多值依赖的性质多值依赖的性质l1多值依赖具有对称性。多值依赖具有对称性。l 假设假设XY,那么,那么XZ,其中,其中ZUXYl 多值依赖
53、的对称性可以用完全二分图直多值依赖的对称性可以用完全二分图直观地表示出来。观地表示出来。l2多值依赖具有传送性。多值依赖具有传送性。l 假设假设XY,YZ, 那么那么XZ -Y。多值依赖的对称性多值依赖的对称性 XiZi1 Zi2 ZimYi1 Yi2 Yin多值依赖的对称性多值依赖的对称性 物物 理理普通物理学普通物理学 光学原理光学原理 物理习题集物理习题集李勇李勇 王军王军多值依赖续多值依赖续3函数依赖是多值依赖的特殊情况。函数依赖是多值依赖的特殊情况。 假设假设XY,那么,那么XY。4假设假设XY,XZ,那么,那么XY Z。5假设假设XY,XZ,那么,那么XYZ。6假设假设XY,XZ,
54、那么,那么XY-Z,XZ -Y。多值依赖续多值依赖续l多值依赖与函数依赖的区别多值依赖与函数依赖的区别l(1) 有效性有效性l多值依赖的有效性与属性集的范围有关。多值依赖的有效性与属性集的范围有关。l假设假设XY在在U上成立,那么在上成立,那么在WX Y W U上一定成立;反之那么不上一定成立;反之那么不然,即然,即XY在在WW U上成立,上成立,在在U上并不一定成立。上并不一定成立。l缘由:多值依赖的定义中不仅涉及属性缘由:多值依赖的定义中不仅涉及属性组组X和和Y,而且涉及,而且涉及U中其他属性中其他属性Z。l普通地,在普通地,在RU上假设有上假设有XY在在WW U上成立,那么称上成立,那么
55、称XY为为RU的嵌入型多值依赖。的嵌入型多值依赖。多值依赖续多值依赖续 函数依赖函数依赖XY的有效性仅决议于的有效性仅决议于X、Y这两这两个属性集的值个属性集的值 只需在只需在RU的任何一个关系的任何一个关系r中,元组在中,元组在X和和Y上的值满足定义上的值满足定义5.l,那么函数依赖,那么函数依赖XY在任何属性集在任何属性集WX Y W U上上成立。成立。多值依赖续多值依赖续(2) 假设函数依赖假设函数依赖XY在在RU上成立,那么对于上成立,那么对于任何任何Y Y均有均有XY 成立。成立。多值依赖多值依赖XY假设在假设在R(U)上成立,不能断言上成立,不能断言对于任何对于任何Y Y有有XY
56、成立。成立。二、第四范式二、第四范式4NFl定义定义l定义定义5.11 关系方式关系方式R1NF,假设对于,假设对于R的每个非平凡的每个非平凡多值依赖多值依赖XYY X,X都都含有候选码,那么含有候选码,那么R4NF。l4NF就是限制关系方式的属性之间就是限制关系方式的属性之间不允许有非平凡且非函数依赖的多不允许有非平凡且非函数依赖的多值依赖。值依赖。4NF所允许的非平凡多值所允许的非平凡多值依赖实践上是函数依赖。依赖实践上是函数依赖。第四范式续第四范式续l假设一个关系方式是假设一个关系方式是4NF, 那么必那么必为为BCNF。l第四范式续第四范式续例:例: Teach(C,T,B)由于由于T
57、each(C,T,B) 中存在非平凡的多值依中存在非平凡的多值依赖赖CT,且,且C不是候选码,因此不是候选码,因此Teach不属于不属于4NF。这正是它之所以存在数据冗余度大,插入这正是它之所以存在数据冗余度大,插入和删除操作复杂等弊病的根源。和删除操作复杂等弊病的根源。第四范式续第四范式续 处理方法处理方法 用投影分解法把用投影分解法把Teach分解为如下两个分解为如下两个4NF关系方式:关系方式: CT(C, T) CB(C, B) CT4NF。CT是平凡多值依赖是平凡多值依赖 CT中不存在既非平凡也非函数依赖中不存在既非平凡也非函数依赖的多值依赖。的多值依赖。 CB4NF。第四范式续第四
58、范式续分解后分解后Teach关系中的几个问题可以得到处理:关系中的几个问题可以得到处理:(1) 参考书只需求在参考书只需求在CB关系中存储一次。关系中存储一次。(2) 当某一课程添加一名任课教师时,只需求当某一课程添加一名任课教师时,只需求在在CT关系中添加一个元组。关系中添加一个元组。(3) 某一门课要去掉一本参考书,只需求在某一门课要去掉一本参考书,只需求在CB关系中删除一个相应的元组。关系中删除一个相应的元组。 (4) 某一门课要修正一本参考书,只需求修正某一门课要修正一本参考书,只需求修正CB关系中一个相应的元组。关系中一个相应的元组。第第4章章 关系数据库设计实际关系数据库设计实际l
59、4.1 数据依赖数据依赖l4.2 范式范式l4.3 关系方式的规范化关系方式的规范化4.3 关系方式的规范化关系方式的规范化l4.3.1 关系方式规范化的步骤关系方式规范化的步骤l4.3.2 关系方式的分解关系方式的分解4.3 关系方式的规范化关系方式的规范化l关系数据库的规范化实际是数据库逻辑关系数据库的规范化实际是数据库逻辑设计的工具。设计的工具。l一个关系只需其分量都是不可分的数据一个关系只需其分量都是不可分的数据项,它就是规范化的关系,但这只是最项,它就是规范化的关系,但这只是最根本的规范化。根本的规范化。l规范化程度可以有规范化程度可以有6个不同的级别,即个不同的级别,即6个范式。个
60、范式。规范化续规范化续l规范化程度过低的关系不一定可以很好规范化程度过低的关系不一定可以很好地描画现实世界,能够会存在插入异常、地描画现实世界,能够会存在插入异常、删除异常、修正复杂、数据冗余等问题,删除异常、修正复杂、数据冗余等问题,处理方法就是对其进展规范化,转换成处理方法就是对其进展规范化,转换成高级范式。高级范式。l一个低一级范式的关系方式,经过方式一个低一级范式的关系方式,经过方式分解可以转换为假设干个高一级范式的分解可以转换为假设干个高一级范式的关系方式集合,这种过程就叫关系方式关系方式集合,这种过程就叫关系方式的规范化。的规范化。4.3 关系方式的规范化关系方式的规范化l4.3.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流园区临电施工合同
- 高端住宅区合同样式
- 木质厨房用品制作合同
- 养猪场环保设施检测合同
- 水稻托管合同范例
- 港口码头施工员招聘合同范本
- 煤炭购销合同模板复杂
- 服装设计师岗位聘用合同
- 2024年度加油站的租赁与经营合同
- 食品运输公司采暖系统施工合同
- 《软弱地基处理》课件.ppt
- 手机维修顾客须知
- 路灯工程竣工验收标准表格.docx
- 两台37kW三相交流电动机的动力配电柜设计(共21页)
- 精品资料(2021-2022年收藏)中国邮政工资200810范文
- 先进先出法与后进先出法ppt课件
- 资本运营理论与融资重点整理
- 学生学习习惯家长问卷调查表家长问卷调查表
- 职业暴露及预防控制
- 大连市土地一级开发整理
- 氩气安全技术说明书
评论
0/150
提交评论