资源预览内容
第1页 / 共79页
第2页 / 共79页
第3页 / 共79页
第4页 / 共79页
第5页 / 共79页
第6页 / 共79页
第7页 / 共79页
第8页 / 共79页
第9页 / 共79页
第10页 / 共79页
亲,该文档总共79页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第4章章 关系数据库设计理论关系数据库设计理论本章要求:本章要求:了解数据冗余和更新异常产生的根源了解数据冗余和更新异常产生的根源了解函数依赖、多值依赖和键的基本内涵了解函数依赖、多值依赖和键的基本内涵理解关系模式规范化的途径理解关系模式规范化的途径了解第四范式、第五范式的概念了解第四范式、第五范式的概念掌握第一范式、第二范式、第三范式和掌握第一范式、第二范式、第三范式和BCNF范式的含义、联系与区别范式的含义、联系与区别1第第4章章 关系数据库设计理论关系数据库设计理论本章内容:本章内容:问题提出问题提出12数据依赖数据依赖2规范化关系模式设计规范化关系模式设计3综合举例综合举例424.1问题提出问题提出 一个基本的问题:一个基本的问题: 给出一组数据,如何构造一个合适的给出一组数据,如何构造一个合适的数据模式?数据模式? 例如:对关系模型,给了一组数据,应该例如:对关系模型,给了一组数据,应该构造几个关系?每个关系由哪些属性组成构造几个关系?每个关系由哪些属性组成? 这就是数据库逻辑设计问题!这就是数据库逻辑设计问题!34.1问题提出问题提出 网状、层次模型的数据库设计,主要凭网状、层次模型的数据库设计,主要凭设设计者的经验计者的经验直观地选择和确定实体集、属性直观地选择和确定实体集、属性以及实体间的联系。哪些实体应该合并或分以及实体间的联系。哪些实体应该合并或分解以及如何合并和分解、每个实体中应该包解以及如何合并和分解、每个实体中应该包括哪些属性为宜、属性间的联系如何确定和括哪些属性为宜、属性间的联系如何确定和处理等一系列问题的解决是没有什么固定规处理等一系列问题的解决是没有什么固定规则和理论可循的。则和理论可循的。44.1问题提出问题提出 关系数据库的设计是借助近代数学工关系数据库的设计是借助近代数学工具而提出来的,形成了一整套定义、公理、具而提出来的,形成了一整套定义、公理、定理及各种实用算法,产生了确定、评价关定理及各种实用算法,产生了确定、评价关系数据库模式的好方法。系数据库模式的好方法。 关系数据库的规范化理论关系数据库的规范化理论 数据库逻辑设计的有力工具数据库逻辑设计的有力工具54.1问题提出问题提出要考虑的几个问题:要考虑的几个问题:v为什么要规范化?为什么要规范化?v怎样规范化?怎样规范化?v规范化到什么程度后最合适?规范化到什么程度后最合适? 本节首先用一个例子来说明对关系模本节首先用一个例子来说明对关系模式为什么要规范化,不经过规范化会产生式为什么要规范化,不经过规范化会产生什么样的结果。什么样的结果。64.1问题提出问题提出例:假设有一个关于学生选课和住宿情况的关系,例:假设有一个关于学生选课和住宿情况的关系,包含:包含:Sno(学生的学号)、(学生的学号)、Sdept(学生所在系)、(学生所在系)、Sloc(学生所住宿舍楼)、(学生所住宿舍楼)、Cno(课程号)、(课程号)、Grade(考试成绩)(考试成绩)如下所示:如下所示:7S-L-CS-L-C(SnoSno,Sdept,Sloc,Sdept,Sloc,CnoCno,Grade,Grade) 假设每个系的学生都住在一栋楼里假设每个系的学生都住在一栋楼里, , ( (SnoSno, , CnoCno) )为主码为主码SnoSno SdeptSdept SLOC SLOC CnoCno Grade Grade 9812101 9812101 计算机计算机 2 2公寓公寓 DB DB 80809812101 9812101 计算机计算机 2 2公寓公寓 OS OS 85859821101 9821101 信息信息 1 1公寓公寓 C C 90909821101 9821101 信息信息 1 1公寓公寓 DS DS 84849821102 9821102 信息信息 1 1公寓公寓 OS OS 787898301019830101外语外语2 2公寓公寓英语英语 90904.1问题提出问题提出84.1问题提出问题提出假设每个系的学生都住在一栋楼里假设每个系的学生都住在一栋楼里该关系模式存在以下四个严重问题:该关系模式存在以下四个严重问题:数据冗余数据冗余 数据库中不必要的重复存储就是数据数据库中不必要的重复存储就是数据冗余。冗余。此关系中,有关学生所在系和其所对此关系中,有关学生所在系和其所对应的宿舍楼的信息有冗余,因为一个系有多应的宿舍楼的信息有冗余,因为一个系有多少个学生,这个系所对应的宿舍楼的信息就少个学生,这个系所对应的宿舍楼的信息就要重复存储多少遍。要重复存储多少遍。94.1问题提出问题提出插入异常插入异常 应该存储的信息无法存储。应该存储的信息无法存储。插入记录插入记录时出现不能插入等一些不合理现象。如果时出现不能插入等一些不合理现象。如果某个学生还没有选课,但已经有了某个学生还没有选课,但已经有了SdeptSdept和和SlocSloc信息,我们也不能将此学生的这些已信息,我们也不能将此学生的这些已知信息插入到数据库中。因为知信息插入到数据库中。因为CnoCno为空,而为空,而CnoCno为主属性,不能为空,因此也就丢掉了为主属性,不能为空,因此也就丢掉了该学生的其他基本信息。该学生的其他基本信息。104.1问题提出问题提出删除异常删除异常 不该删除的信息被删除。不该删除的信息被删除。如果一个如果一个学生只选了一门课,而后来又不选了,学生只选了一门课,而后来又不选了,则应该删除此学生选此门课程的记录。则应该删除此学生选此门课程的记录。但由于这个学生只选了一门课,那么删但由于这个学生只选了一门课,那么删掉此学生的选课记录的同时也删掉了此掉此学生的选课记录的同时也删掉了此学生的其他基本信息。学生的其他基本信息。114.1问题提出问题提出更新异常更新异常 由于数据的重复存储,会给更新带来由于数据的重复存储,会给更新带来很多麻烦。可能会导致数据的不一致,这将很多麻烦。可能会导致数据的不一致,这将直接影响系统的质量。若某一学生从计算机直接影响系统的质量。若某一学生从计算机系转到信息系,那么不但要修改学生的系转到信息系,那么不但要修改学生的SdeptSdept列的值,而且还要修改其列的值,而且还要修改其SlocSloc列的值,列的值,从而使修改复杂化。从而使修改复杂化。 一方面,修改工作量大;另一方面,一方面,修改工作量大;另一方面,可能漏改或该错,会造成数据的不一致性。可能漏改或该错,会造成数据的不一致性。124.1问题提出问题提出 上例充分说明对关系模式若随意设计,上例充分说明对关系模式若随意设计,其后果是严重的。其后果是严重的。 本章将要讨论产生上述问题的原因以及本章将要讨论产生上述问题的原因以及解决办法,即如何改造一个不好的关系模式。解决办法,即如何改造一个不好的关系模式。 这就是规范化理论要解决的这就是规范化理论要解决的主要问题主要问题。包括包括数据依赖数据依赖、模式分解和模式设计方法模式分解和模式设计方法。其中数据依赖是模式分解和模式设计的基础。其中数据依赖是模式分解和模式设计的基础。13第第4章章 关系数据库设计理论关系数据库设计理论本章内容:本章内容:问题提出问题提出2数据依赖数据依赖规范化关系模式设计规范化关系模式设计312综合举例综合举例4144.2 数据依赖数据依赖 数据模型中我们讨论了数据模型中我们讨论了实体间的联系实体间的联系,同时提到实体内部同时提到实体内部属性间也有联系属性间也有联系。 事实上,上一节中的问题都是由于属性事实上,上一节中的问题都是由于属性间的联系引起的。间的联系引起的。一、数据依赖属性间的联系一、数据依赖属性间的联系: 1:11:1,1:n1:n,m:nm:n三种三种1:11:1联系:联系:设设A A、B B为某实体集中的两个属性的为某实体集中的两个属性的值集,如果对于值集,如果对于A A中的任一值,中的任一值,B B中至多有一中至多有一个值与之对应,且反之亦然。如:个值与之对应,且反之亦然。如:车间车间-主任主任154.2 数据依赖数据依赖1:n1:n联系:联系:设设A A、B B为某实体集中的两个属性的为某实体集中的两个属性的值集,如果对于值集,如果对于A A中的任一值,中的任一值,B B中有多个值中有多个值(包括(包括0 0个)之对应;而对于个)之对应;而对于B B中的任一值,中的任一值,A A中至多有一个值与之对应。如:中至多有一个值与之对应。如:班号班号-学号学号m:nm:n联系:联系:设设A A、B B为某实体集中的两个属性的为某实体集中的两个属性的值集,如果对于值集,如果对于A A中的任一值,中的任一值,B B中有多个值中有多个值(包括(包括0 0个)与之对应,且反之亦然。如:个)与之对应,且反之亦然。如:学学号号-课程号课程号164.2 数据依赖数据依赖 通过一个关系中属性间值的相互关联通过一个关系中属性间值的相互关联(主要体现于值的相等与否)体现出来的(主要体现于值的相等与否)体现出来的数据间的相互联系(是数据内在的性质,数据间的相互联系(是数据内在的性质,语义的体现)为数据依赖语义的体现)为数据依赖。两类最重要的数据依赖:两类最重要的数据依赖:v函数依赖函数依赖v多值依赖多值依赖174.2 数据依赖数据依赖二、函数依赖二、函数依赖 不严格地讲,不严格地讲,函数依赖函数依赖指的是一组属性值指的是一组属性值唯一决定另一组属性值的这种数据依赖。唯一决定另一组属性值的这种数据依赖。v学生关系中,当学号确定后,其姓名也就唯一确学生关系中,当学号确定后,其姓名也就唯一确定了。定了。v选课关系中,当学号和课程号确定后,其成绩也选课关系中,当学号和课程号确定后,其成绩也就唯一确定。就唯一确定。 设用设用U表示关系模式表示关系模式R的属性全集,即的属性全集,即 U=A1,A2 ,An,用,用F表示关系模式表示关系模式R上的函上的函数依赖集,则关系模式数依赖集,则关系模式R可表示为可表示为R(U, F)。184.2 数据依赖数据依赖1. 函数依赖函数依赖(Functional Dependency,缩写缩写FD): 设设 R(U)是属性集是属性集U上的关系模式,上的关系模式,X、Y是是U的子集。对于的子集。对于r中的任意两个元组中的任意两个元组u、v都有都有 uX=vX uY=vY 成立,成立, 则称则称X函数决定函数决定Y,或称,或称Y函数依赖于函数依赖于X,记作记作XY。称。称X为决定因素。为决定因素。194.3 规范化的关系模式规范化的关系模式假设每个系的学生都住在一栋楼里假设每个系的学生都住在一栋楼里, , SnoSno SdeptSdept SLOC SLOC CnoCno Grade Grade 9812101 9812101 计算机计算机 2 2公寓公寓 DB DB 80809812101 9812101 计算机计算机 2 2公寓公寓 OS OS 85859821101 9821101 信息信息 1 1公寓公寓 C C 90909821101 9821101 信息信息 1 1公寓公寓 DS DS 84849821102 9821102 信息信息 1 1公寓公寓 OS OS 787898301019830101外语外语2 2公寓公寓英语英语 9090XYuX=vX uY=vY204.2 数据依赖数据依赖说明:说明:函数依赖类似于变量间的单值函数关系函数依赖类似于变量间的单值函数关系(一个自变量只能对应一个函数值),因(一个自变量只能对应一个函数值),因此也称为单值函数依赖;此也称为单值函数依赖;v若若XY且且YX ,则记作,则记作 XY;v若若Y不函数依赖于不函数依赖于X,则记作,则记作 XY;函数依赖是指关系模式函数依赖是指关系模式R的任一关系都要满的任一关系都要满足的约束条件。足的约束条件。214.2 数据依赖数据依赖2. 函数依赖与属性间的联系之关系函数依赖与属性间的联系之关系(1)若)若X、Y之间是之间是“1:1联系联系”,则存在函则存在函数依赖数依赖XY和和YX, 即即XY.(2)若)若X、Y之间是之间是“m:1联系联系”, 则存在则存在函数依赖关系函数依赖关系XY。(3)若)若X、Y之间是之间是“m:n联系联系”, 则则X、Y之间不存在函数依赖关系。之间不存在函数依赖关系。 224.2 数据依赖数据依赖3.函数依赖分类函数依赖分类v非平凡的函数依赖:非平凡的函数依赖: XY,但,但Y X。v平凡的函数依赖:平凡的函数依赖: XY,但,但Y X。v完全函数依赖:完全函数依赖:XY,且对任意的且对任意的X X, 都有都有X Y, 则称则称XY是一个完全是一个完全函数依赖函数依赖, 即即Y完全依赖于完全依赖于X。记作。记作XYf234.2 数据依赖数据依赖v部分函数依赖:部分函数依赖: XY,但,但Y不完全函数依不完全函数依赖于赖于X,即存在,即存在X X,有,有XY。记作。记作 XY。 pf关系模式关系模式P(学号学号,课程号课程号,成绩成绩,学生姓名学生姓名)中中: (学号学号, 课程号课程号) 成绩成绩 (学号学号, 课程号课程号) 学生姓学生姓名名pv传递函数依赖:传递函数依赖:若若XY,Y X,YZ,且且YX,则称,则称Z对对X是传递函数依赖。记是传递函数依赖。记作作 XZ。传递传递24例例: :关系模式关系模式P(P(学号学号, ,系名系名, ,系主任系主任) )中中: : 学号学号系名系名 系名系名系主任系主任( (假设一个系只有一名系主假设一个系只有一名系主任任) )4.2 数据依赖数据依赖 如果如果Y X,则则X Y,则则XY, Z对对X实际上实际上是直接函数依赖而不是传递函数依赖是直接函数依赖而不是传递函数依赖.传递传递则学号则学号系主任系主任254.2 数据依赖数据依赖例例: :关系模式关系模式P P(姓名,职务,职务工资)中:(姓名,职务,职务工资)中: 姓名姓名职务职务 职务职务职务工资职务工资 则则姓名姓名职务工资职务工资传递传递264.2 数据依赖数据依赖三、多值依赖三、多值依赖 1. 例子:例子:设学校中一门课由多位教员讲授,他们使设学校中一门课由多位教员讲授,他们使用相同的参考书,比如:用相同的参考书,比如: “物理物理”,教员为汪洋、大海,参考书为,教员为汪洋、大海,参考书为普通普通物理学物理学、光学原理光学原理、物理习题集物理习题集; “数学数学”,教员为大海、白云,参考书为,教员为大海、白云,参考书为数学数学分析分析、微分方程微分方程、高等代数高等代数;用模式为用模式为 TEACH(C,T,B)的关系表示上述数的关系表示上述数据:据: 284.2 数据依赖数据依赖课程课程C C 教员教员T T 参考书参考书B B物理物理 汪洋汪洋 普通物理学普通物理学物理物理 汪洋汪洋 光学原理光学原理物理物理 汪洋汪洋 物理习题集物理习题集物理物理 大海大海 普通物理学普通物理学物理物理 大海大海 光学原理光学原理物理物理 大海大海 物理习题集物理习题集数学数学 大海大海 数学分析数学分析数学数学 大海大海 微分方程微分方程数学数学 大海大海 高等代数高等代数数学数学 白云白云 数学分析数学分析数学数学 白云白云 微分方程微分方程数学数学 白云白云 高等代数高等代数计算计算 白云白云 数学分析数学分析 294.2 数据依赖数据依赖该关系模式中,任何两个属性都不能函数决定第该关系模式中,任何两个属性都不能函数决定第三个属性。三个属性。该关系模式存在冗余大、增删不方便等问题。该关系模式存在冗余大、增删不方便等问题。 没有函数依赖,需要另行分析没有函数依赖,需要另行分析分析:分析:在该关系模式中,对于一个(物理,普通物在该关系模式中,对于一个(物理,普通物理学),有一组教员理学),有一组教员汪洋,大海汪洋,大海,而对于另一,而对于另一个(物理,光学原理),对应的教员仍是个(物理,光学原理),对应的教员仍是汪洋,汪洋,大海大海。因此,所对应的教员只与课程的值有关而。因此,所对应的教员只与课程的值有关而与参考书的值无关。与参考书的值无关。304.2 数据依赖数据依赖2. 多值依赖多值依赖(MultiValued Dependency, 缩写缩写为为MVD) 设设R(U)是属性集是属性集U上的关系模式,上的关系模式,X、Y、Z是是U的子集,且的子集,且Z=U X Y,多值依赖,多值依赖XY成立成立当且仅当当且仅当对对R(U)的任一关系的任一关系r,任给的一对(,任给的一对(x,z)值有一组)值有一组Y的值,的值,这组值仅仅取决于这组值仅仅取决于x值而与值而与z值无关。称值无关。称X多值决定多值决定Y或或Y多值依赖于多值依赖于X。314.2 数据依赖数据依赖课程课程C C 教员教员T T 参考书参考书物理物理 汪洋汪洋 普通物理学普通物理学物理物理 汪洋汪洋 光学原理光学原理物理物理 汪洋汪洋 物理习题集物理习题集物理物理 大海大海 普通物理学普通物理学物理物理 大海大海 光学原理光学原理物理物理 大海大海 物理习题集物理习题集数学数学 大海大海 数学分析数学分析数学数学 大海大海 微分方程微分方程数学数学 大海大海 高等代数高等代数数学数学 白云白云 数学分析数学分析数学数学 白云白云 微分方程微分方程数学数学 白云白云 高等代数高等代数计算计算 白云白云 数学分析数学分析 XYZ任给的一对任给的一对(x,z)值值有一组有一组Y的值,这组的值,这组值仅仅取决于值仅仅取决于x值值, 而与而与z值无关。称值无关。称X多值决定多值决定Y或或Y多值多值依赖于依赖于X。32 多值依赖多值依赖XY成立当且仅当对成立当且仅当对R(U)的任一关系的任一关系r,若存在元组若存在元组s、t使得使得sX=tX,则必存在元组则必存在元组w、v r(w、v可以与可以与s、t相同),使得相同),使得wX=vX=tX,而,而wY=tY,vY=sY, wZ=sZ,vZ=tZ。多值依赖的另一等价定义多值依赖的另一等价定义对于对于r中在中在X上值相等的上值相等的两个元组两个元组s、t,交换它们交换它们的的Y值后所得的新元组值后所得的新元组w、v仍在仍在r中中X Y ZsXvXwXtXtswvwYsYtYvYtZvZsZwZ334.2 数据依赖数据依赖平凡的多值依赖:平凡的多值依赖: 若若X Y,而,而Z=,即,即Z为空,空,则称称X Y为平凡的多值依赖。若为平凡的多值依赖。若Z非空,则称非空,则称X Y 为为非平凡的多值依赖非平凡的多值依赖344.2 数据依赖数据依赖3. 多值依赖的性质:多值依赖的性质:对称性:对称性:若若 XY, Z=U X Y,则,则 XZ。传递性传递性:若:若 XY , YZ ,则,则XYZ 。函数依赖是多值依赖的特例函数依赖是多值依赖的特例:若:若 XY,则则 XY。354.2 数据依赖数据依赖多值依赖的性质:多值依赖的性质:若若 XY ,XZ ,则,则 XYZ 。若若 XY ,XZ ,则,则 XYZ, X Z Y。364.2 数据依赖数据依赖4. 多值依赖与函数依赖的区别多值依赖与函数依赖的区别(1)函数依赖)函数依赖XY的有效性仅取决于的有效性仅取决于X、Y,与,与X、Y之外的属性无关:之外的属性无关:374.2 数据依赖数据依赖多值依赖多值依赖XY的有效性与的有效性与X、Y之外的属之外的属性范围有关:若性范围有关:若XY在在U上成立,则在上成立,则在W( XY W U)上也成立,但反之不然。)上也成立,但反之不然。可缩小范围但不一定能扩大范围可缩小范围但不一定能扩大范围 X是否多值决定是否多值决定Y与这一部分属性密切相关与这一部分属性密切相关X Y Z R(U):WX YR(W):W XY在在U上成立上成立XY在在W上也成立上也成立反之反之不成立不成立384.2 数据依赖数据依赖四、键四、键从函数依赖的角度给关键字一个形式化的定义。从函数依赖的角度给关键字一个形式化的定义。1. 候选关键字和主关键字:候选关键字和主关键字: 设设K是是R中的属性或属性组合,中的属性或属性组合,v若候选关键字多于一个,则选定其中的一若候选关键字多于一个,则选定其中的一个作为个作为主关键字主关键字(主键、主码主键、主码)。)。fv若若 KU,则称,则称K为为U的的候选关键字候选关键字(候选(候选码);码);404.2 数据依赖数据依赖2. 外键(外部码)外键(外部码) 若若R中的属性或属性组合中的属性或属性组合X不是不是R的关的关键字,但键字,但X是另一个关系的关键字,则称是另一个关系的关键字,则称X是是R的的外键外键。 主键与外键提供了一个表示关系间联系的手主键与外键提供了一个表示关系间联系的手段。段。 例例1:S( Sno, Sname, Sage) Sno为主码为主码 SC( Sno, Cno, Grade) Sno为外码为外码414.2 数据依赖数据依赖3. 全键(全键(All-key,全码),全码)若若R的整个属性组是关键字,则称的整个属性组是关键字,则称U是是全键全键。424.2 数据依赖数据依赖例例2:R(P,W,A)其中各属性含义分别)其中各属性含义分别为:为: 演奏者,作品和听众。演奏者,作品和听众。 其语义为:一个演奏者可演奏多个作其语义为:一个演奏者可演奏多个作品,某一作品可被多个演奏者演奏;听众品,某一作品可被多个演奏者演奏;听众也可欣赏不同演奏者的不同作品。也可欣赏不同演奏者的不同作品。 其候选码为其候选码为:(P,W,A),因为只有),因为只有这三者才能确定一场音乐会。我们称全部这三者才能确定一场音乐会。我们称全部属性均为主码的表为属性均为主码的表为全码表全码表。434.2 数据依赖数据依赖4. 主属性和非主属性主属性和非主属性主属性:主属性:包含在某个候选关键字中的属性包含在某个候选关键字中的属性非主属性:非主属性:不包含在任何不包含在任何侯选关键字侯选关键字中的属中的属性性例:例:SC(Sno, Cno, Grade)中,)中,(Sno, Cno)是关键字)是关键字, 故故Sno, Cno是主属是主属性性 Grade不包含在任何关键字中不包含在任何关键字中, 故故Grade是是非主属性。非主属性。44第第4章章 关系数据库设计理论关系数据库设计理论本章内容:本章内容:问题提出问题提出2数据依赖数据依赖规范化关系模式规范化关系模式312综合举例综合举例4454.3 规范化的关系模式规范化的关系模式一、规范化一、规范化1. 范式(范式(Normal Form) 按关系模式所具有的数据依赖性质对关系模按关系模式所具有的数据依赖性质对关系模式的分类式的分类, 也就是关系的规范化程度。也就是关系的规范化程度。 满足不同程度要求的为不同范式。满足不同程度要求的为不同范式。2. 规范化规范化 把一个低一级范式的关系模式通过模式分解把一个低一级范式的关系模式通过模式分解转化为若干个高一级的关系模式的过程。转化为若干个高一级的关系模式的过程。471NF2NF3NFBCNF4NF5NF4.3 规范化的关系模式规范化的关系模式484.3 规范化的关系模式规范化的关系模式二、第一范式(二、第一范式(1NF1NF)1. 1. 定义:关系的每个分量必须是不可再分的数定义:关系的每个分量必须是不可再分的数据项。据项。记作记作R R 1NF1NF。( (每个属性必须是原子的每个属性必须是原子的) )2. 2. 说明:说明:属性不可再分(不允许出现嵌套的属性定义)属性不可再分(不允许出现嵌套的属性定义)属性下的值不可再分(不允许出现多个值)属性下的值不可再分(不允许出现多个值)这是对关系的最起码的要求,但远远不够。这是对关系的最起码的要求,但远远不够。(满足(满足1NF1NF的关系称为规范关系)的关系称为规范关系)49系名称系名称 高职人数高职人数教授教授 副教授副教授 计算机系计算机系 6 61010信息管理系信息管理系 3 35 5电子与通讯系电子与通讯系 4 48 8系名称系名称教授教授 副教授副教授 计算机系计算机系 6 61010信息管理系信息管理系 3 35 5电子与通讯系电子与通讯系 4 48 84.3 规范化的关系模式规范化的关系模式不满足不满足1NF范式的关系:范式的关系:504.3 规范化的关系模式规范化的关系模式3. 仅属于仅属于1NF的关系模式可能会产生的问题:的关系模式可能会产生的问题:S-L-C(Sno, Sdept, Sloc, Cno, Grade) 假设每个系的学生都住在一栋楼里假设每个系的学生都住在一栋楼里,(Sno, Cno)为主码为主码SnoSno SdeptSdept SLOC SLOC CnoCno Grade Grade 9812101 9812101 计算机计算机 2 2公寓公寓 DB DB 80809812101 9812101 计算机计算机 2 2公寓公寓 OS OS 85859821101 9821101 信息信息 1 1公寓公寓 C C 90909821101 9821101 信息信息 1 1公寓公寓 DS DS 84849821102 9821102 信息信息 1 1公寓公寓 OS OS 7878显然显然S-L-C 1NF1NF,但第一节中我们已讨论知它有四个严重问题。,但第一节中我们已讨论知它有四个严重问题。因此仅是第一范式的关系模式完全不能满足需要。因此仅是第一范式的关系模式完全不能满足需要。514.3 规范化的关系模式规范化的关系模式SnoSnoSLOCSLOCSnoSnoSdeptSdept主码为主码为:(:(Sno,CnoSno,Cno) )( (Sno,Cno)Sno,Cno)GradeGradef在在S-L-C中有如下函数依赖中有如下函数依赖: 524.3 规范化的关系模式规范化的关系模式分析出现问题的原因:分析出现问题的原因: Sno函数决定非主属性函数决定非主属性Sdept、SLOC。因。因此,关键字(此,关键字(Sno,Cno)部分函数决定这)部分函数决定这些属性。些属性。 这显然是产生冗余的一个这显然是产生冗余的一个主要原因主要原因。 534.3 规范化的关系模式规范化的关系模式三、第二范式(三、第二范式(2NF)1. 定义:定义:若若 R 1NF,且每一非主属性都完全,且每一非主属性都完全函数依赖于函数依赖于R的任意一个候选码,则称的任意一个候选码,则称R是是第二范式,记作第二范式,记作R 2NF。2. 属于属于1NF但不属于但不属于2NF的例子:的例子: 例:例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)就)就不是不是2NF的。因为(的。因为(Sno,Cno)是主码,而)是主码,而又有:又有:SnoSdept, 因此有:因此有:(Sno,Cno) Sdeptp544.3 规范化的关系模式规范化的关系模式3. 2NF范式的性质范式的性质如果如果R 2NF,则,则R 1NF。如果如果R的候选关键字是单属性或全键的候选关键字是单属性或全键(All-key), 则则R 2NF554.3 规范化的关系模式规范化的关系模式2NF要求实体的非主属性完全依赖于主关键要求实体的非主属性完全依赖于主关键字。如果存在非主属性部分函数依赖主关字。如果存在非主属性部分函数依赖主关键字一部分属性,那么这个属性和主关键键字一部分属性,那么这个属性和主关键字的这部分属性应该分离出来形成一个新字的这部分属性应该分离出来形成一个新的实体。即的实体。即1NF范式中消除非主属性对主关范式中消除非主属性对主关键字的部分函数依赖键字的部分函数依赖,即可得到,即可得到2NF。56 4. 分解过程为:分解过程为:用每个决定因素与它完全决定的属性构成一用每个决定因素与它完全决定的属性构成一个关系模式,决定因素成为新模式的码。个关系模式,决定因素成为新模式的码。 S-L-C关系模式分解后的形式为:关系模式分解后的形式为: S-L(Sno,Sdept,Sloc)和和S-C(Sno, Cno,Grade) S-L有:有:Sno Sdept,Sno SLOC:是:是2NFff S-C有有:(Sno, Cno) Grade:是:是2NFf4.3 规范化的关系模式规范化的关系模式574.3 规范化的关系模式规范化的关系模式分解前分解前 S-L-C(Sno,Sdept,Sloc,Cno,Grade)分解后分解后 S-C(Sno, Cno,Grade)S-L(Sno,Sdept,Sloc)分解之后分解之后, ,与与S_L_CS_L_C相比:相比:v数据冗余减小(原来伴随学生所学的每门数据冗余减小(原来伴随学生所学的每门课都要存储一遍课都要存储一遍SD、SL的值);的值);v没选课的学生信息可以存储;没选课的学生信息可以存储;v删除选课记录不会误删学生其他信息;删除选课记录不会误删学生其他信息;v冗余数据的减少使得修改变得容易些。冗余数据的减少使得修改变得容易些。1NF的上述四个问题得到了部分解决的上述四个问题得到了部分解决584.3 规范化的关系模式规范化的关系模式5. 仅属于仅属于2NF的关系模式可能会产生的问题的关系模式可能会产生的问题数据冗余数据冗余 数据冗余仍然较大:数据冗余仍然较大:Sloc的值重复严重的值重复严重插入异常插入异常 若一个系刚成立但尚无学生,该系名称若一个系刚成立但尚无学生,该系名称等无法存储等无法存储删除异常删除异常 若一个系的学生全部毕业,删除全部学若一个系的学生全部毕业,删除全部学生数据的同时把该系的数据(如系名等)也都删生数据的同时把该系的数据(如系名等)也都删除了除了修改困难修改困难 数据冗余大势必造成修改困难(这可以数据冗余大势必造成修改困难(这可以说是个必然联系)说是个必然联系)可能的原因:存在传递函数依赖可能的原因:存在传递函数依赖SnoSloc594.3 规范化的关系模式规范化的关系模式四、第三范式(四、第三范式(3NF)1. 定义:定义:如果如果R(U,F) 2NF,并且所有非主,并且所有非主属性对任何候选关键字都不存在传递依赖,属性对任何候选关键字都不存在传递依赖,则则R(U,F)3NF。2. 定理:定理:若若 R 3NF,则,则 R 2NF。 关系模式关系模式S-L(Sno, Sdept, Sloc), 因为有:因为有: SnoSdept,SdeptSloc 因此有:因此有:Sno传递传递Sloc 因此,不是因此,不是3NF的关系模式。的关系模式。60 3.分解过程为分解过程为(1)对于不是候选码的每个决定因子,从表中删去)对于不是候选码的每个决定因子,从表中删去依赖于它的所有属性;依赖于它的所有属性;(2)新建一个表,新表中包含在原表中所有依赖于)新建一个表,新表中包含在原表中所有依赖于该决定因子的属性;该决定因子的属性;(3)将决定因子作为新表的主码。)将决定因子作为新表的主码。 S-L分解后的关系模式为:分解后的关系模式为: S-D(Sno,Sdept)和)和S-L(Sdept,Sloc) 对对S-D,有:,有:Sno fSdept,因此,因此S- D是是3NF的的 对对S-L,有:,有:Sdept fSloc,因此,因此S-L也是也是3NF的的 通常在数据库设计中,通常在数据库设计中,一般要求要达到一般要求要达到3NF。 614.3 规范化的关系模式规范化的关系模式4. 仅属于仅属于3NF的关系模式可能会产生的问题的关系模式可能会产生的问题由上可知,部分函数依赖和传递函数依赖是产由上可知,部分函数依赖和传递函数依赖是产生异常的两个重要原因。生异常的两个重要原因。3NF中不存在非主属性对于关键字的部分函数中不存在非主属性对于关键字的部分函数依赖和传递函数依赖,因此具有较好的性质。依赖和传递函数依赖,因此具有较好的性质。通常设计关系模式时至少应该是属于通常设计关系模式时至少应该是属于3NF的。的。虽说虽说3NF是广泛使用的一种关系范式,但是广泛使用的一种关系范式,但3NF仍然存在某些仍然存在某些“异常异常”。624.3 规范化的关系模式规范化的关系模式五、五、Boyce-Codd范式(范式(BCNF)1. 定义定义:如果关系模式:如果关系模式R中的所有属性包括主属性中的所有属性包括主属性和非主属性,都不传递依赖于和非主属性,都不传递依赖于R的的任何候选关键任何候选关键字字,则称,则称R是是BCNF范式。记为范式。记为R BCNF。2. 另一种等价的定义:另一种等价的定义: 若若R 3NF,且对任何非平凡的函数依赖,且对任何非平凡的函数依赖XY,X必包含候选码。则必包含候选码。则R BCNF。 如果如果R3NF,并且不存在主属性对非码的函,并且不存在主属性对非码的函数依赖,则其是数依赖,则其是BCNF。644.3 规范化的关系模式规范化的关系模式3. 性质性质所有非主属性对每一个主码都是完全函所有非主属性对每一个主码都是完全函数依赖;数依赖;所有主属性对每一个不包含它的主码也所有主属性对每一个不包含它的主码也是完全函数依赖;是完全函数依赖;没有任何属性完全函数依赖于非主码的没有任何属性完全函数依赖于非主码的任何一组属性。任何一组属性。若若R BCNF,则,则R 3NF。(也称也称BCNF为修正的为修正的3NF)654.3 规范化的关系模式规范化的关系模式 在函数依赖的范畴内在函数依赖的范畴内,BCNF已做到彻已做到彻底的分离,消除了插入异常、删除异常底的分离,消除了插入异常、删除异常(3NF的的“不彻底性不彻底性”在于可能存在主属在于可能存在主属性对关键字的部分函数依赖和传递函数依性对关键字的部分函数依赖和传递函数依赖)。赖)。 664.3 规范化的关系模式规范化的关系模式4. 属于属于3NF但不属于但不属于BCNF的例子:的例子: 关系模式关系模式 STJ(学生(学生S,教师,教师T,课程,课程C) 每个教师只教一门课每个教师只教一门课, 每门课有若干教师每门课有若干教师, 某一某一学生选定某门课学生选定某门课, 就对应一个固定的教师。就对应一个固定的教师。码:(学生码:(学生S,课程,课程C);(学生);(学生S,教师,教师T)函数依赖:(函数依赖:(S,C)T;(;(S,T)C;TC因为因为C部分函数依赖于码(部分函数依赖于码(S,T),或),或T是决定是决定因素,但因素,但T不包含码。故不包含码。故R不属于不属于BCNF。 674.3 规范化的关系模式规范化的关系模式5.解决办法:解决办法:消除主属性对码的部分或传递函消除主属性对码的部分或传递函数依赖,转换数依赖,转换BCNF。 将将R(学生(学生S, 教师教师T, 课程课程C)分解为:)分解为: R1(学生学生S, 教师教师T)和和 R2(教师教师T, 课程课程C)694.3 规范化的关系模式规范化的关系模式六、范式小结六、范式小结1. 规范化的目的规范化的目的 解决数据冗余、插入异常、删除异常、修解决数据冗余、插入异常、删除异常、修改困难改困难 等问题等问题2. 规范化的基本思想规范化的基本思想 逐步消除不合适的数据依赖,让一个关系逐步消除不合适的数据依赖,让一个关系描述一个概念、一个实体或实体间的一种描述一个概念、一个实体或实体间的一种联系。即联系。即“一事一地一事一地”的模式设计原则。的模式设计原则。704.3 规范化的关系模式规范化的关系模式3. 范式范式1NF2NF3NFBCNF4NF消除消除非主属性非主属性对码的对码的部分部分函数依赖函数依赖消除消除非主属性非主属性对码对码的的传递传递函数依赖函数依赖消除消除主属性主属性对码的对码的部分部分和和传递传递函数依赖函数依赖消除消除非平凡非平凡且非函数依赖的且非函数依赖的多值依赖多值依赖消除消除决定决定因素因素非码非码的非的非平凡平凡函数函数依赖依赖决定因素非码的非平凡多值依赖决定因素非码的非平凡多值依赖714.3 规范化的关系模式规范化的关系模式4.4.规范化的过程规范化的过程 对关系模式分解,把一个低一级关系模式对关系模式分解,把一个低一级关系模式分解成若干个高一级的关系模式。分解成若干个高一级的关系模式。5.5.规范化与操作效率规范化与操作效率 片面追求高级的模式,会使数据库操作效片面追求高级的模式,会使数据库操作效率降低率降低72第第4章章 关系数据库设计理论关系数据库设计理论本章内容:本章内容:问题提出问题提出2数据依赖数据依赖规范化关系模式规范化关系模式312综合举例综合举例4734.4 综合举例综合举例例例1:设有关系模式:设有关系模式W(仓库号,零件号,零仓库号,零件号,零件数量,仓库地址件数量,仓库地址),问该关系模式满足第,问该关系模式满足第几范式?为什么?几范式?为什么? 显然关系模式显然关系模式W符合符合1NF,(仓库号,零件仓库号,零件号号)构成候选关键字。但是因为构成候选关键字。但是因为 仓库号仓库号仓库地址仓库地址,也就是,也就是(仓库号,零件号仓库号,零件号) 仓库地址仓库地址p所以所以W不符合不符合2NF。将。将W分解为两个关系:分解为两个关系: W1(仓库号,零件号,零件数量仓库号,零件号,零件数量)W2(仓库号,仓库地址仓库号,仓库地址)744.4 综合举例综合举例 W1(仓库号,零件号,零件数量仓库号,零件号,零件数量) W2(仓库号,仓库地址仓库号,仓库地址) 关系模式关系模式W1的候选关键字的候选关键字(仓库号仓库号, 零零件号件号), 关系模式关系模式W2的候选关键字为的候选关键字为仓库号仓库号,这样这样, W1和和W2中非主属性对候选关键字都中非主属性对候选关键字都是完全函数依赖了。是完全函数依赖了。 所以所以 W1 2NF,W2 2NF。 W1和和W2之间通过仓库号相联系,对他们之间通过仓库号相联系,对他们进行自然联结,可以恢复成原来的关系进行自然联结,可以恢复成原来的关系W。754.4 综合举例综合举例例例2:设有关系模式:设有关系模式R(A, B, C),关系上存在关系上存在函数依赖关系有:函数依赖关系有:C B,B A。试写出试写出该关系模式的候选关键字;该关系模式的候选关键字;R是否为是否为3NF?说明理由。?说明理由。 从关系从关系R上存在的函数依赖关系可以推出上存在的函数依赖关系可以推出R的的候选关键字是候选关键字是C。 由由C B,B A可知,可知,A传递函数依赖于传递函数依赖于C,所以,所以R不是不是3NF。将它分解为:。将它分解为: R1(C B,) 和和 R2(B, A)两个关系,它们都是两个关系,它们都是3NF,而且都满足,而且都满足BCNF范式条件。范式条件。764.4 综合举例综合举例例例3 设有关系模式设有关系模式R(学号学号, 姓名姓名, 性别性别, 专业专业, 年级年级, 课程成绩课程成绩(课程号课程号, 课程名课程名, 学时学时, 学学分分, 成绩成绩)。试写出关系模式存在的基本函。试写出关系模式存在的基本函数依赖关系;数依赖关系;R是否为是否为2NF?说明理由。?说明理由。由语义知,关系由语义知,关系R中存在如下基本函数依赖:中存在如下基本函数依赖:学号学号 (学号学号, 姓名姓名, 性别性别, 专业专业, 年级年级)课程号课程号(课程名课程名, 学时学时, 学分学分)(学号,课程号学号,课程号) 成绩成绩774.4 综合举例综合举例由于课程成绩由由于课程成绩由(课程号课程号, 课程名课程名, 学时学时, 学分学分, 成绩成绩)组成,所以组成,所以R R不是第一范式不是第一范式不是第一范式不是第一范式。但是可以改。但是可以改造成如下关系:造成如下关系: R1(学号学号, 姓名姓名, 性别性别, 专业专业, 年级年级, 课程号课程号, 课程课程名名, 学时学时, 学分学分, 成绩成绩) 这样这样R1就是第一范式了。就是第一范式了。由于由于R1中存在部分函数依赖中存在部分函数依赖。因为。因为(学号,课程学号,课程号号)是关系是关系R1的候选码,而的候选码,而R1中存在:中存在:(学号学号, 课程号)课程号) 姓名姓名p(学号学号, 课程号)课程号) 性别性别p所以所以所以所以R1R1不是第二范式。不是第二范式。不是第二范式。不是第二范式。784.4 综合举例综合举例将将R1分解为:分解为: R11(学号学号, 姓名姓名, 性别性别, 专业专业, 年级年级) R12 (课程号课程号, 课程名课程名, 学时学时, 学分学分) R13(学号学号, 课程号课程号, 成绩成绩) 通过分解得到的关系通过分解得到的关系R11,R12,R13都是第二范式了。都是第二范式了。79
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号