第章关系数据库设计理论课件_第1页
第章关系数据库设计理论课件_第2页
第章关系数据库设计理论课件_第3页
第章关系数据库设计理论课件_第4页
第章关系数据库设计理论课件_第5页
已阅读5页,还剩143页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章关系数据库设计理论本章要求:了解数据冗余和更新异常产生的根源了解函数依赖、多值依赖和键的基本内涵理解关系模式规范化的途径了解第四范式、第五范式的概念掌握第一范式、第二范式、第三范式和BCNF范式的含义、联系与区别1第4章关系数据库设计理论本章要求:1第4章关系数据库设计理论本章内容:问题提出12数据依赖2规范化关系模式设计3综合举例42第4章关系数据库设计理论本章内容:问题提出12数据依赖2规4.1问题提出

一个基本的问题:给出一组数据,如何构造一个合适的数据模式?例如:对关系模型,给了一组数据,应该构造几个关系?每个关系由哪些属性组成?……这就是数据库逻辑设计问题!34.1问题提出一个基本的问题:34.1问题提出网状、层次模型的数据库设计,主要凭设计者的经验直观地选择和确定实体集、属性以及实体间的联系。哪些实体应该合并或分解以及如何合并和分解、每个实体中应该包括哪些属性为宜、属性间的联系如何确定和处理等一系列问题的解决是没有什么固定规则和理论可循的。44.1问题提出网状、层次模型的数据库设计,主要凭设计4.1问题提出关系数据库的设计是借助近代数学工具而提出来的,形成了一整套定义、公理、定理及各种实用算法,产生了确定、评价关系数据库模式的好方法。

关系数据库的规范化理论——数据库逻辑设计的有力工具54.1问题提出关系数据库的设计是借助近4.1问题提出要考虑的几个问题:为什么要规范化?怎样规范化?规范化到什么程度后最合适?本节首先用一个例子来说明对关系模式为什么要规范化,不经过规范化会产生什么样的结果。64.1问题提出要考虑的几个问题:64.1问题提出例:假设有一个关于学生选课和住宿情况的关系,包含:Sno(学生的学号)、Sdept(学生所在系)、Sloc(学生所住宿舍楼)、Cno(课程号)、Grade(考试成绩)如下所示:74.1问题提出例:假设有一个关于学生选课和住宿情况的关系,7S-L-C(Sno,Sdept,Sloc,Cno,Grade)假设每个系的学生都住在一栋楼里,(Sno,Cno)为主码SnoSdeptSLOCCnoGrade9812101计算机2公寓DB809812101计算机2公寓OS859821101信息1公寓C909821101信息1公寓DS849821102信息1公寓OS789830101外语2公寓英语904.1问题提出8S-L-C(Sno,Sdept,Sloc,Cno,Grade4.1问题提出假设每个系的学生都住在一栋楼里该关系模式存在以下四个严重问题:数据冗余

数据库中不必要的重复存储就是数据冗余。此关系中,有关学生所在系和其所对应的宿舍楼的信息有冗余,因为一个系有多少个学生,这个系所对应的宿舍楼的信息就要重复存储多少遍。94.1问题提出假设每个系的学生都住在一栋楼里94.1问题提出插入异常

应该存储的信息无法存储。插入记录时出现不能插入等一些不合理现象。如果某个学生还没有选课,但已经有了Sdept和Sloc信息,我们也不能将此学生的这些已知信息插入到数据库中。因为Cno为空,而Cno为主属性,不能为空,因此也就丢掉了该学生的其他基本信息。104.1问题提出插入异常104.1问题提出删除异常

不该删除的信息被删除。如果一个学生只选了一门课,而后来又不选了,则应该删除此学生选此门课程的记录。但由于这个学生只选了一门课,那么删掉此学生的选课记录的同时也删掉了此学生的其他基本信息。114.1问题提出删除异常114.1问题提出更新异常由于数据的重复存储,会给更新带来很多麻烦。可能会导致数据的不一致,这将直接影响系统的质量。若某一学生从计算机系转到信息系,那么不但要修改学生的Sdept列的值,而且还要修改其Sloc列的值,从而使修改复杂化。一方面,修改工作量大;另一方面,可能漏改或该错,会造成数据的不一致性。124.1问题提出更新异常124.1问题提出上例充分说明对关系模式若随意设计,其后果是严重的。本章将要讨论产生上述问题的原因以及解决办法,即如何改造一个不好的关系模式。这就是规范化理论要解决的主要问题。包括数据依赖、模式分解和模式设计方法。其中数据依赖是模式分解和模式设计的基础。134.1问题提出上例充分说明对关系模式若随意设计第4章关系数据库设计理论本章内容:问题提出2数据依赖规范化关系模式设计312综合举例414第4章关系数据库设计理论本章内容:问题提出2数据依赖规范化4.2数据依赖数据模型中我们讨论了实体间的联系,同时提到实体内部属性间也有联系。事实上,上一节中的问题都是由于属性间的联系引起的。一、数据依赖属性间的联系:

1:1,1:n,m:n三种1:1联系:设A、B为某实体集中的两个属性的值集,如果对于A中的任一值,B中至多有一个值与之对应,且反之亦然。如:车间--主任154.2数据依赖数据模型中我们讨论了实体间的联系4.2数据依赖1:n联系:设A、B为某实体集中的两个属性的值集,如果对于A中的任一值,B中有多个值(包括0个)之对应;而对于B中的任一值,A中至多有一个值与之对应。如:班号--学号m:n联系:设A、B为某实体集中的两个属性的值集,如果对于A中的任一值,B中有多个值(包括0个)与之对应,且反之亦然。如:学号--课程号164.2数据依赖1:n联系:设A、B为某实体集中的两个属性的4.2数据依赖通过一个关系中属性间值的相互关联(主要体现于值的相等与否)体现出来的数据间的相互联系(是数据内在的性质,语义的体现)为数据依赖。两类最重要的数据依赖:函数依赖多值依赖174.2数据依赖通过一个关系中属性间值的相互关联4.2数据依赖二、函数依赖不严格地讲,函数依赖指的是一组属性值唯一决定另一组属性值的这种数据依赖。学生关系中,当学号确定后,其姓名也就唯一确定了。选课关系中,当学号和课程号确定后,其成绩也就唯一确定。设用U表示关系模式R的属性全集,即U={A1,A2,…An},用F表示关系模式R上的函数依赖集,则关系模式R可表示为R(U,F)。184.2数据依赖二、函数依赖184.2数据依赖1.函数依赖(FunctionalDependency,缩写FD):设R(U)是属性集U上的关系模式,X、Y是U的子集。对于r中的任意两个元组u、v都有

u[X]=v[X]

u[Y]=v[Y]成立,则称X函数决定Y,或称Y函数依赖于X,记作XY。称X为决定因素。194.2数据依赖1.函数依赖(FunctionalDe4.3规范化的关系模式假设每个系的学生都住在一栋楼里,

SnoSdeptSLOCCnoGrade9812101计算机2公寓DB809812101计算机2公寓OS859821101信息1公寓C909821101信息1公寓DS849821102信息1公寓OS789830101外语2公寓英语90XYu[X]=v[X]u[Y]=v[Y]204.3规范化的关系模式假设每个系的学生都住在一栋楼里,4.2数据依赖说明:函数依赖类似于变量间的单值函数关系(一个自变量只能对应一个函数值),因此也称为单值函数依赖;若XY且YX,则记作XY;若Y不函数依赖于X,则记作X→Y;函数依赖是指关系模式R的任一关系都要满足的约束条件。214.2数据依赖说明:若Y不函数依赖于X,则记作X→Y;函4.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数据依赖2.函数依赖与属性间的联系之关系224.2数据依赖3.函数依赖分类非平凡的函数依赖:XY,但YX。平凡的函数依赖:XY,但YX。完全函数依赖:XY,且对任意的X’X,都有X’Y,则称XY是一个完全函数依赖,即Y完全依赖于X。记作XYf234.2数据依赖3.函数依赖分类完全函数依赖:XY,且对任4.2数据依赖部分函数依赖:XY,但Y不完全函数依赖于X,即存在X’X,有X’Y。记作XY。

pf关系模式P(学号,课程号,成绩,学生姓名)中:(学号,课程号)成绩(学号,课程号)学生姓名p传递函数依赖:若XY,YX,YZ,且Y→X,则称Z对X是传递函数依赖。记作X—Z。传递244.2数据依赖部分函数依赖:XY,但Y不完全函数依赖于例:关系模式P(学号,系名,系主任)中:学号系名系名系主任(假设一个系只有一名系主任)4.2数据依赖如果YX,则XY,则XY,Z对X实际上是直接函数依赖而不是传递函数依赖.传递则学号—系主任25例:关系模式P(学号,系名,系主任)中:4.2数据依赖4.2数据依赖例:关系模式P(姓名,职务,职务工资)中:姓名职务职务职务工资则姓名—职务工资传递264.2数据依赖例:关系模式P(姓名,职务,职务工资)中:姓4.2数据依赖例:关系模式P(学号,课程号,成绩,学分)中:

因为课程号学分,(学分,课程号)成绩f(学号,课程号)课程号(平凡函数依赖),p所以有(学号,课程号)学分反之不成立,课程号学分,形成传递依赖(学号,课程号)—学分。传递274.2数据依赖例:关系模式P(学号,课程号,成绩,学分)中4.2数据依赖三、多值依赖

1.例子:设学校中一门课由多位教员讲授,他们使用相同的参考书,比如:“物理”,教员为汪洋、大海,参考书为《普通物理学》、《光学原理》、《物理习题集》;“数学”,教员为大海、白云,参考书为《数学分析》、《微分方程》、《高等代数》;用模式为TEACH(C,T,B)的关系表示上述数据:284.2数据依赖三、多值依赖284.2数据依赖课程C教员T参考书B物理汪洋普通物理学物理汪洋光学原理物理汪洋物理习题集物理大海普通物理学物理大海光学原理物理大海物理习题集数学大海数学分析数学大海微分方程数学大海高等代数数学白云数学分析数学白云微分方程数学白云高等代数计算白云数学分析………………294.2数据依赖课程C教员T参考书4.2数据依赖该关系模式中,任何两个属性都不能函数决定第三个属性。该关系模式存在冗余大、增删不方便等问题。没有函数依赖,需要另行分析分析:在该关系模式中,对于一个(物理,普通物理学),有一组教员{汪洋,大海},而对于另一个(物理,光学原理),对应的教员仍是{汪洋,大海}。因此,所对应的教员只与课程的值有关而与参考书的值无关。304.2数据依赖该关系模式中,任何两个属性都不能函数决定第三4.2数据依赖2.多值依赖(MultiValuedDependency,缩写为MVD)设R(U)是属性集U上的关系模式,X、Y、Z是U的子集,且Z=UXY,多值依赖XY成立当且仅当对R(U)的任一关系r,任给的一对(x,z)值有一组Y的值,这组值仅仅取决于x值而与z值无关。称X多值决定Y或Y多值依赖于X。314.2数据依赖2.多值依赖(MultiValuedDe4.2数据依赖课程C教员T参考书物理汪洋普通物理学物理汪洋光学原理物理汪洋物理习题集物理大海普通物理学物理大海光学原理物理大海物理习题集数学大海数学分析数学大海微分方程数学大海高等代数数学白云数学分析数学白云微分方程数学白云高等代数计算白云数学分析………………XYZ任给的一对(x,z)值有一组Y的值,这组值仅仅取决于x值,而与z值无关。称X多值决定Y或Y多值依赖于X。324.2数据依赖课程C教员T参考书多值依赖XY成立当且仅当对R(U)的任一关系r,若存在元组s、t使得s[X]=t[X],则必存在元组w、vr(w、v可以与s、t相同),使得w[X]=v[X]=t[X],而w[Y]=t[Y],v[Y]=s[Y],w[Z]=s[Z],v[Z]=t[Z]。多值依赖的另一等价定义对于r中在X上值相等的两个元组s、t,交换它们的Y值后所得的新元组w、v仍在r中XYZs[X]v[X]w[X]t[X]tswvw[Y]s[Y]t[Y]v[Y]t[Z]v[Z]s[Z]w[Z]33多值依赖XY成立当且仅当对R(U)的任一关4.2数据依赖平凡的多值依赖:若XY,而Z=Ø,即Z为空,则称XY为平凡的多值依赖。若Z非空,则称XY为非平凡的多值依赖344.2数据依赖平凡的多值依赖:344.2数据依赖3.多值依赖的性质:对称性:若XY,Z=UXY,则XZ。传递性:若XY,YZ,则XY−Z。函数依赖是多值依赖的特例:若XY,则XY。354.2数据依赖3.多值依赖的性质:354.2数据依赖多值依赖的性质:若XY,XZ,则XY∩Z。若XY,XZ,则XY−Z,XZ

Y。364.2数据依赖多值依赖的性质:364.2数据依赖4.多值依赖与函数依赖的区别(1)函数依赖XY的有效性仅取决于X、Y,与X、Y之外的属性无关:374.2数据依赖4.多值依赖与函数依赖的区别374.2数据依赖多值依赖XY的有效性与X、Y之外的属性范围有关:若XY在U上成立,则在W(XYWU)上也成立,但反之不然。可缩小范围但不一定能扩大范围

X是否多值决定Y与这一部分属性密切相关XYZ

R(U):WXYR(W):W

XY在U上成立XY在W上也成立反之不成立384.2数据依赖多值依赖XY的有效性与X、Y之外的属性范4.2数据依赖(2)对函数依赖,若XY,则对Y的任意子集Y’,都有XY’。对多值依赖,没有上述性质,即不能保证XY’成立。原因:在关系模式R(U)上,函数依赖XY的有效性仅仅取决于X、Y两个属性集合;而在多值依赖中XY在U上是否成立,不仅要检查X、Y上的属性值,而且要检查Z=U-X-Y上的值。394.2数据依赖(2)对函数依赖,若XY,则对Y的任意子集4.2数据依赖四、键从函数依赖的角度给关键字一个形式化的定义。1.候选关键字和主关键字:设K是R<U,F>中的属性或属性组合,若候选关键字多于一个,则选定其中的一个作为主关键字(主键、主码)。f若KU,则称K为U的候选关键字(候选码);404.2数据依赖四、键若候选关键字多于一个,则选定其中的一个4.2数据依赖2.外键(外部码)若R<U,F>中的属性或属性组合X不是R的关键字,但X是另一个关系的关键字,则称X是R的外键。主键与外键提供了一个表示关系间联系的手段。例1:S(Sno,Sname,Sage)Sno为主码SC(Sno,Cno,Grade)Sno为外码414.2数据依赖2.外键(外部码)414.2数据依赖3.全键(All-key,全码)若R<U,F>的整个属性组是关键字,则称U是全键。424.2数据依赖3.全键(All-key,全码)424.2数据依赖例2:R(P,W,A)其中各属性含义分别为:演奏者,作品和听众。其语义为:一个演奏者可演奏多个作品,某一作品可被多个演奏者演奏;听众也可欣赏不同演奏者的不同作品。

其候选码为:(P,W,A),因为只有这三者才能确定一场音乐会。我们称全部属性均为主码的表为全码表。434.2数据依赖例2:R(P,W,A)其中各属性含义分别为:4.2数据依赖4.主属性和非主属性主属性:包含在某个候选关键字中的属性非主属性:不包含在任何侯选关键字中的属性例:SC(Sno,Cno,Grade)中,(Sno,Cno)是关键字,故Sno,Cno是主属性Grade不包含在任何关键字中,故Grade是非主属性。444.2数据依赖4.主属性和非主属性44第4章关系数据库设计理论本章内容:问题提出2数据依赖规范化关系模式312综合举例445第4章关系数据库设计理论本章内容:问题提出2数据依赖规范化4.3规范化的关系模式本节讨论下述问题:如何根据关系模式属性间的数据依赖情况来判断该关系模式是否合适?如何将具有不合适性质的关系模式转换为更合适的形式?464.3规范化的关系模式本节讨论下述问题:464.3规范化的关系模式一、规范化1.范式(NormalForm)按关系模式所具有的数据依赖性质对关系模式的分类,也就是关系的规范化程度。满足不同程度要求的为不同范式。2.规范化把一个低一级范式的关系模式通过模式分解转化为若干个高一级的关系模式的过程。474.3规范化的关系模式一、规范化471NF2NF3NFBCNF4NF5NF4.3规范化的关系模式481NF2NF3NFBCNF4NF5NF4.3规范化的关系模4.3规范化的关系模式二、第一范式(1NF)1.定义:关系的每个分量必须是不可再分的数据项。记作R1NF。(每个属性必须是原子的)2.说明:属性不可再分(不允许出现嵌套的属性定义)属性下的值不可再分(不允许出现多个值)这是对关系的最起码的要求,但远远不够。(满足1NF的关系称为规范关系)494.3规范化的关系模式二、第一范式(1NF)49系名称高职人数教授副教授计算机系610信息管理系35电子与通讯系48系名称教授副教授计算机系610信息管理系35电子与通讯系484.3规范化的关系模式不满足1NF范式的关系:50系名称高职人数教授副教授计算机系610信息管理系34.3规范化的关系模式3.仅属于1NF的关系模式可能会产生的问题:S-L-C(Sno,Sdept,Sloc,Cno,Grade)假设每个系的学生都住在一栋楼里,(Sno,Cno)为主码SnoSdeptSLOCCnoGrade9812101计算机2公寓DB809812101计算机2公寓OS859821101信息1公寓C909821101信息1公寓DS849821102信息1公寓OS78显然S-L-C1NF,但第一节中我们已讨论知它有四个严重问题。因此仅是第一范式的关系模式完全不能满足需要。514.3规范化的关系模式3.仅属于1NF的关系模式可能会产4.3规范化的关系模式SnoSLOCSnoSdept主码为:(Sno,Cno)(Sno,Cno)Gradef在S-L-C中有如下函数依赖:524.3规范化的关系模式SnoSLOC主码为:(Sno,C4.3规范化的关系模式分析出现问题的原因:

Sno函数决定非主属性Sdept、SLOC。因此,关键字(Sno,Cno)部分函数决定这些属性。这显然是产生冗余的一个主要原因。534.3规范化的关系模式分析出现问题的原因:534.3规范化的关系模式三、第二范式(2NF)1.定义:若R1NF,且每一非主属性都完全函数依赖于R的任意一个候选码,则称R是第二范式,记作R2NF。2.属于1NF但不属于2NF的例子:例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)就不是2NF的。因为(Sno,Cno)是主码,而又有:Sno→Sdept,因此有:(Sno,Cno)Sdeptp544.3规范化的关系模式三、第二范式(2NF)(Sno,Cn4.3规范化的关系模式3.2NF范式的性质如果R2NF,则R1NF。如果R的候选关键字是单属性或全键(All-key),则R2NF554.3规范化的关系模式3.2NF范式的性质554.3规范化的关系模式2NF要求实体的非主属性完全依赖于主关键字。如果存在非主属性部分函数依赖主关键字一部分属性,那么这个属性和主关键字的这部分属性应该分离出来形成一个新的实体。即1NF范式中消除非主属性对主关键字的部分函数依赖,即可得到2NF。564.3规范化的关系模式2NF要求实体的非主属性完全依赖于主4.分解过程为:用每个决定因素与它完全决定的属性构成一个关系模式,决定因素成为新模式的码。S-L-C关系模式分解后的形式为:

S-L(Sno,Sdept,Sloc)和S-C(Sno,Cno,Grade)S-L有:SnoSdept,Sno

SLOC:是2NFffS-C有:(Sno,Cno)

Grade:是2NFf4.3规范化的关系模式574.分解过程为:S-L有:SnoSdept4.3规范化的关系模式分解前S-L-C(Sno,Sdept,Sloc,Cno,Grade)分解后S-C(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)分解之后,与S_L_C相比:数据冗余减小(原来伴随学生所学的每门课都要存储一遍SD、SL的值);没选课的学生信息可以存储;删除选课记录不会误删学生其他信息;冗余数据的减少使得修改变得容易些。1NF的上述四个问题得到了部分解决584.3规范化的关系模式分解前S-L-C(Sno,Sdep4.3规范化的关系模式5.仅属于2NF的关系模式可能会产生的问题数据冗余数据冗余仍然较大:Sloc的值重复严重插入异常若一个系刚成立但尚无学生,该系名称等无法存储删除异常若一个系的学生全部毕业,删除全部学生数据的同时把该系的数据(如系名等)也都删除了修改困难数据冗余大势必造成修改困难(这可以说是个必然联系)可能的原因:存在传递函数依赖SnoSloc594.3规范化的关系模式5.仅属于2NF的关系模式可能会产4.3规范化的关系模式四、第三范式(3NF)1.定义:如果R(U,F)∈2NF,并且所有非主属性对任何候选关键字都不存在传递依赖,则R(U,F)∈3NF。2.定理:若R3NF,则R2NF。

关系模式S-L(Sno,Sdept,Sloc),因为有:Sno→Sdept,Sdept→Sloc因此有:Sno传递→Sloc

因此,不是3NF的关系模式。604.3规范化的关系模式四、第三范式(3NF)603.分解过程为(1)对于不是候选码的每个决定因子,从表中删去依赖于它的所有属性;(2)新建一个表,新表中包含在原表中所有依赖于该决定因子的属性;(3)将决定因子作为新表的主码。S-L分解后的关系模式为:S-D(Sno,Sdept)和S-L(Sdept,Sloc)对S-D,有:Snof→Sdept,因此S-D是3NF的对S-L,有:Sdeptf→Sloc,因此S-L也是3NF的通常在数据库设计中,一般要求要达到3NF。

613.分解过程为614.3规范化的关系模式4.仅属于3NF的关系模式可能会产生的问题由上可知,部分函数依赖和传递函数依赖是产生异常的两个重要原因。3NF中不存在非主属性对于关键字的部分函数依赖和传递函数依赖,因此具有较好的性质。通常设计关系模式时至少应该是属于3NF的。虽说3NF是广泛使用的一种关系范式,但3NF仍然存在某些“异常”。624.3规范化的关系模式4.仅属于3NF的关系模式可能会产4.3规范化的关系模式例:关系模式R(S,T,J)函数依赖:(S,J)T;(S,T)J;TJ候选关键字:(S,J);(S,T)R中无非主属性,显然R3NF。634.3规范化的关系模式634.3规范化的关系模式五、Boyce-Codd范式(BCNF)1.定义:如果关系模式R中的所有属性包括主属性和非主属性,都不传递依赖于R的任何候选关键字,则称R是BCNF范式。记为RBCNF。2.另一种等价的定义:若R3NF,且对任何非平凡的函数依赖XY,X必包含候选码。则RBCNF。如果R∈3NF,并且不存在主属性对非码的函数依赖,则其是BCNF。644.3规范化的关系模式五、Boyce-Codd范式(BCN4.3规范化的关系模式3.性质所有非主属性对每一个主码都是完全函数依赖;所有主属性对每一个不包含它的主码也是完全函数依赖;没有任何属性完全函数依赖于非主码的任何一组属性。若RBCNF,则R3NF。(也称BCNF为修正的3NF)654.3规范化的关系模式3.性质654.3规范化的关系模式在函数依赖的范畴内,BCNF已做到彻底的分离,消除了插入异常、删除异常(3NF的“不彻底性”在于可能存在主属性对关键字的部分函数依赖和传递函数依赖)。664.3规范化的关系模式在函数依赖的范4.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规范化的关系模式4.属于3NF但不属于BCNF的例4.3规范化的关系模式例:有关系模式CSZ(City,Street,Zip),其中各属性分别代表城市、街道和邮政编码。其语义为:城市和街道可以决定邮政编码,邮政编码可以决定城市。因此有:(City,Street)Zip,ZipCity其候选码为:(City,Street)和(Street,Zip)此模式不存在非主属性,因此它属于3NF。存在问题ZipCity,Zip是决定因子,但Zip不是码。所以不是BCNF!。684.3规范化的关系模式例:有关系模式CSZ(City,St4.3规范化的关系模式5.解决办法:消除主属性对码的部分或传递函数依赖,转换BCNF。将R(学生S,教师T,课程C)分解为:

R1(学生S,教师T)和R2(教师T,课程C)694.3规范化的关系模式5.解决办法:消除主属性对码的部分或4.3规范化的关系模式六、范式小结1.规范化的目的解决数据冗余、插入异常、删除异常、修改困难等问题2.规范化的基本思想逐步消除不合适的数据依赖,让一个关系描述一个概念、一个实体或实体间的一种联系。即“一事一地”的模式设计原则。704.3规范化的关系模式六、范式小结704.3规范化的关系模式3.范式1NF2NF3NFBCNF4NF消除非主属性对码的部分函数依赖消除非主属性对码的传递函数依赖消除主属性对码的部分和传递函数依赖消除非平凡且非函数依赖的多值依赖消除决定因素非码的非平凡函数依赖决定因素非码的非平凡多值依赖714.3规范化的关系模式3.范式1NF2NF3NFBCNF4.3规范化的关系模式4.规范化的过程对关系模式分解,把一个低一级关系模式分解成若干个高一级的关系模式。5.规范化与操作效率片面追求高级的模式,会使数据库操作效率降低724.3规范化的关系模式4.规范化的过程72第4章关系数据库设计理论本章内容:问题提出2数据依赖规范化关系模式312综合举例473第4章关系数据库设计理论本章内容:问题提出2数据依赖规范化4.4综合举例例1:设有关系模式W(仓库号,零件号,零件数量,仓库地址),问该关系模式满足第几范式?为什么?显然关系模式W符合1NF,(仓库号,零件号)构成候选关键字。但是因为

仓库号仓库地址,也就是(仓库号,零件号)仓库地址p所以W不符合2NF。将W分解为两个关系:W1(仓库号,零件号,零件数量)W2(仓库号,仓库地址)744.4综合举例例1:设有关系模式W(仓库号,零件号,零件数4.4综合举例W1(仓库号,零件号,零件数量)W2(仓库号,仓库地址)

关系模式W1的候选关键字(仓库号,零件号),关系模式W2的候选关键字为仓库号,这样,W1和W2中非主属性对候选关键字都是完全函数依赖了。所以W12NF,W22NF。

W1和W2之间通过仓库号相联系,对他们进行自然联结,可以恢复成原来的关系W。754.4综合举例W1(仓库号,零件号,零件数量4.4综合举例例2:设有关系模式R(A,B,C),关系上存在函数依赖关系有:CB,BA。试写出该关系模式的候选关键字;R是否为3NF?说明理由。从关系R上存在的函数依赖关系可以推出R的候选关键字是C。由CB,BA可知,A传递函数依赖于C,所以R不是3NF。将它分解为:

R1(CB,)和R2(B,A)两个关系,它们都是3NF,而且都满足BCNF范式条件。764.4综合举例例2:设有关系模式R(A,B,C),关系4.4综合举例例3设有关系模式R(学号,姓名,性别,专业,年级,课程成绩(课程号,课程名,学时,学分,成绩))。试写出关系模式存在的基本函数依赖关系;R是否为2NF?说明理由。由语义知,关系R中存在如下基本函数依赖:学号

(学号,姓名,性别,专业,年级)课程号(课程名,学时,学分)(学号,课程号)成绩774.4综合举例例3设有关系模式R(学号,姓名,性别,4.4综合举例由于课程成绩由(课程号,课程名,学时,学分,成绩)组成,所以R不是第一范式。但是可以改造成如下关系:R1(学号,姓名,性别,专业,年级,课程号,课程名,学时,学分,成绩)这样R1就是第一范式了。由于R1中存在部分函数依赖。因为(学号,课程号)是关系R1的候选码,而R1中存在:(学号,课程号)姓名p(学号,课程号)性别p所以R1不是第二范式。784.4综合举例由于课程成绩由(课程号,课程名,学时,4.4综合举例将R1分解为:R11(学号,姓名,性别,专业,年级)R12(课程号,课程名,学时,学分)R13(学号,课程号,成绩)通过分解得到的关系R11,R12,R13都是第二范式了。794.4综合举例将R1分解为:通过分解得到的关系R第4章关系数据库设计理论本章要求:了解数据冗余和更新异常产生的根源了解函数依赖、多值依赖和键的基本内涵理解关系模式规范化的途径了解第四范式、第五范式的概念掌握第一范式、第二范式、第三范式和BCNF范式的含义、联系与区别80第4章关系数据库设计理论本章要求:1第4章关系数据库设计理论本章内容:问题提出12数据依赖2规范化关系模式设计3综合举例481第4章关系数据库设计理论本章内容:问题提出12数据依赖2规4.1问题提出

一个基本的问题:给出一组数据,如何构造一个合适的数据模式?例如:对关系模型,给了一组数据,应该构造几个关系?每个关系由哪些属性组成?……这就是数据库逻辑设计问题!824.1问题提出一个基本的问题:34.1问题提出网状、层次模型的数据库设计,主要凭设计者的经验直观地选择和确定实体集、属性以及实体间的联系。哪些实体应该合并或分解以及如何合并和分解、每个实体中应该包括哪些属性为宜、属性间的联系如何确定和处理等一系列问题的解决是没有什么固定规则和理论可循的。834.1问题提出网状、层次模型的数据库设计,主要凭设计4.1问题提出关系数据库的设计是借助近代数学工具而提出来的,形成了一整套定义、公理、定理及各种实用算法,产生了确定、评价关系数据库模式的好方法。

关系数据库的规范化理论——数据库逻辑设计的有力工具844.1问题提出关系数据库的设计是借助近4.1问题提出要考虑的几个问题:为什么要规范化?怎样规范化?规范化到什么程度后最合适?本节首先用一个例子来说明对关系模式为什么要规范化,不经过规范化会产生什么样的结果。854.1问题提出要考虑的几个问题:64.1问题提出例:假设有一个关于学生选课和住宿情况的关系,包含:Sno(学生的学号)、Sdept(学生所在系)、Sloc(学生所住宿舍楼)、Cno(课程号)、Grade(考试成绩)如下所示:864.1问题提出例:假设有一个关于学生选课和住宿情况的关系,7S-L-C(Sno,Sdept,Sloc,Cno,Grade)假设每个系的学生都住在一栋楼里,(Sno,Cno)为主码SnoSdeptSLOCCnoGrade9812101计算机2公寓DB809812101计算机2公寓OS859821101信息1公寓C909821101信息1公寓DS849821102信息1公寓OS789830101外语2公寓英语904.1问题提出87S-L-C(Sno,Sdept,Sloc,Cno,Grade4.1问题提出假设每个系的学生都住在一栋楼里该关系模式存在以下四个严重问题:数据冗余

数据库中不必要的重复存储就是数据冗余。此关系中,有关学生所在系和其所对应的宿舍楼的信息有冗余,因为一个系有多少个学生,这个系所对应的宿舍楼的信息就要重复存储多少遍。884.1问题提出假设每个系的学生都住在一栋楼里94.1问题提出插入异常

应该存储的信息无法存储。插入记录时出现不能插入等一些不合理现象。如果某个学生还没有选课,但已经有了Sdept和Sloc信息,我们也不能将此学生的这些已知信息插入到数据库中。因为Cno为空,而Cno为主属性,不能为空,因此也就丢掉了该学生的其他基本信息。894.1问题提出插入异常104.1问题提出删除异常

不该删除的信息被删除。如果一个学生只选了一门课,而后来又不选了,则应该删除此学生选此门课程的记录。但由于这个学生只选了一门课,那么删掉此学生的选课记录的同时也删掉了此学生的其他基本信息。904.1问题提出删除异常114.1问题提出更新异常由于数据的重复存储,会给更新带来很多麻烦。可能会导致数据的不一致,这将直接影响系统的质量。若某一学生从计算机系转到信息系,那么不但要修改学生的Sdept列的值,而且还要修改其Sloc列的值,从而使修改复杂化。一方面,修改工作量大;另一方面,可能漏改或该错,会造成数据的不一致性。914.1问题提出更新异常124.1问题提出上例充分说明对关系模式若随意设计,其后果是严重的。本章将要讨论产生上述问题的原因以及解决办法,即如何改造一个不好的关系模式。这就是规范化理论要解决的主要问题。包括数据依赖、模式分解和模式设计方法。其中数据依赖是模式分解和模式设计的基础。924.1问题提出上例充分说明对关系模式若随意设计第4章关系数据库设计理论本章内容:问题提出2数据依赖规范化关系模式设计312综合举例493第4章关系数据库设计理论本章内容:问题提出2数据依赖规范化4.2数据依赖数据模型中我们讨论了实体间的联系,同时提到实体内部属性间也有联系。事实上,上一节中的问题都是由于属性间的联系引起的。一、数据依赖属性间的联系:

1:1,1:n,m:n三种1:1联系:设A、B为某实体集中的两个属性的值集,如果对于A中的任一值,B中至多有一个值与之对应,且反之亦然。如:车间--主任944.2数据依赖数据模型中我们讨论了实体间的联系4.2数据依赖1:n联系:设A、B为某实体集中的两个属性的值集,如果对于A中的任一值,B中有多个值(包括0个)之对应;而对于B中的任一值,A中至多有一个值与之对应。如:班号--学号m:n联系:设A、B为某实体集中的两个属性的值集,如果对于A中的任一值,B中有多个值(包括0个)与之对应,且反之亦然。如:学号--课程号954.2数据依赖1:n联系:设A、B为某实体集中的两个属性的4.2数据依赖通过一个关系中属性间值的相互关联(主要体现于值的相等与否)体现出来的数据间的相互联系(是数据内在的性质,语义的体现)为数据依赖。两类最重要的数据依赖:函数依赖多值依赖964.2数据依赖通过一个关系中属性间值的相互关联4.2数据依赖二、函数依赖不严格地讲,函数依赖指的是一组属性值唯一决定另一组属性值的这种数据依赖。学生关系中,当学号确定后,其姓名也就唯一确定了。选课关系中,当学号和课程号确定后,其成绩也就唯一确定。设用U表示关系模式R的属性全集,即U={A1,A2,…An},用F表示关系模式R上的函数依赖集,则关系模式R可表示为R(U,F)。974.2数据依赖二、函数依赖184.2数据依赖1.函数依赖(FunctionalDependency,缩写FD):设R(U)是属性集U上的关系模式,X、Y是U的子集。对于r中的任意两个元组u、v都有

u[X]=v[X]

u[Y]=v[Y]成立,则称X函数决定Y,或称Y函数依赖于X,记作XY。称X为决定因素。984.2数据依赖1.函数依赖(FunctionalDe4.3规范化的关系模式假设每个系的学生都住在一栋楼里,

SnoSdeptSLOCCnoGrade9812101计算机2公寓DB809812101计算机2公寓OS859821101信息1公寓C909821101信息1公寓DS849821102信息1公寓OS789830101外语2公寓英语90XYu[X]=v[X]u[Y]=v[Y]994.3规范化的关系模式假设每个系的学生都住在一栋楼里,4.2数据依赖说明:函数依赖类似于变量间的单值函数关系(一个自变量只能对应一个函数值),因此也称为单值函数依赖;若XY且YX,则记作XY;若Y不函数依赖于X,则记作X→Y;函数依赖是指关系模式R的任一关系都要满足的约束条件。1004.2数据依赖说明:若Y不函数依赖于X,则记作X→Y;函4.2数据依赖2.函数依赖与属性间的联系之关系(1)若X、Y之间是“1:1联系”,则存在函数依赖XY和YX,即XY.(2)若X、Y之间是“m:1联系”,则存在函数依赖关系XY。(3)若X、Y之间是“m:n联系”,则X、Y之间不存在函数依赖关系。1014.2数据依赖2.函数依赖与属性间的联系之关系224.2数据依赖3.函数依赖分类非平凡的函数依赖:XY,但YX。平凡的函数依赖:XY,但YX。完全函数依赖:XY,且对任意的X’X,都有X’Y,则称XY是一个完全函数依赖,即Y完全依赖于X。记作XYf1024.2数据依赖3.函数依赖分类完全函数依赖:XY,且对任4.2数据依赖部分函数依赖:XY,但Y不完全函数依赖于X,即存在X’X,有X’Y。记作XY。

pf关系模式P(学号,课程号,成绩,学生姓名)中:(学号,课程号)成绩(学号,课程号)学生姓名p传递函数依赖:若XY,YX,YZ,且Y→X,则称Z对X是传递函数依赖。记作X—Z。传递1034.2数据依赖部分函数依赖:XY,但Y不完全函数依赖于例:关系模式P(学号,系名,系主任)中:学号系名系名系主任(假设一个系只有一名系主任)4.2数据依赖如果YX,则XY,则XY,Z对X实际上是直接函数依赖而不是传递函数依赖.传递则学号—系主任104例:关系模式P(学号,系名,系主任)中:4.2数据依赖4.2数据依赖例:关系模式P(姓名,职务,职务工资)中:姓名职务职务职务工资则姓名—职务工资传递1054.2数据依赖例:关系模式P(姓名,职务,职务工资)中:姓4.2数据依赖例:关系模式P(学号,课程号,成绩,学分)中:

因为课程号学分,(学分,课程号)成绩f(学号,课程号)课程号(平凡函数依赖),p所以有(学号,课程号)学分反之不成立,课程号学分,形成传递依赖(学号,课程号)—学分。传递1064.2数据依赖例:关系模式P(学号,课程号,成绩,学分)中4.2数据依赖三、多值依赖

1.例子:设学校中一门课由多位教员讲授,他们使用相同的参考书,比如:“物理”,教员为汪洋、大海,参考书为《普通物理学》、《光学原理》、《物理习题集》;“数学”,教员为大海、白云,参考书为《数学分析》、《微分方程》、《高等代数》;用模式为TEACH(C,T,B)的关系表示上述数据:1074.2数据依赖三、多值依赖284.2数据依赖课程C教员T参考书B物理汪洋普通物理学物理汪洋光学原理物理汪洋物理习题集物理大海普通物理学物理大海光学原理物理大海物理习题集数学大海数学分析数学大海微分方程数学大海高等代数数学白云数学分析数学白云微分方程数学白云高等代数计算白云数学分析………………1084.2数据依赖课程C教员T参考书4.2数据依赖该关系模式中,任何两个属性都不能函数决定第三个属性。该关系模式存在冗余大、增删不方便等问题。没有函数依赖,需要另行分析分析:在该关系模式中,对于一个(物理,普通物理学),有一组教员{汪洋,大海},而对于另一个(物理,光学原理),对应的教员仍是{汪洋,大海}。因此,所对应的教员只与课程的值有关而与参考书的值无关。1094.2数据依赖该关系模式中,任何两个属性都不能函数决定第三4.2数据依赖2.多值依赖(MultiValuedDependency,缩写为MVD)设R(U)是属性集U上的关系模式,X、Y、Z是U的子集,且Z=UXY,多值依赖XY成立当且仅当对R(U)的任一关系r,任给的一对(x,z)值有一组Y的值,这组值仅仅取决于x值而与z值无关。称X多值决定Y或Y多值依赖于X。1104.2数据依赖2.多值依赖(MultiValuedDe4.2数据依赖课程C教员T参考书物理汪洋普通物理学物理汪洋光学原理物理汪洋物理习题集物理大海普通物理学物理大海光学原理物理大海物理习题集数学大海数学分析数学大海微分方程数学大海高等代数数学白云数学分析数学白云微分方程数学白云高等代数计算白云数学分析………………XYZ任给的一对(x,z)值有一组Y的值,这组值仅仅取决于x值,而与z值无关。称X多值决定Y或Y多值依赖于X。1114.2数据依赖课程C教员T参考书多值依赖XY成立当且仅当对R(U)的任一关系r,若存在元组s、t使得s[X]=t[X],则必存在元组w、vr(w、v可以与s、t相同),使得w[X]=v[X]=t[X],而w[Y]=t[Y],v[Y]=s[Y],w[Z]=s[Z],v[Z]=t[Z]。多值依赖的另一等价定义对于r中在X上值相等的两个元组s、t,交换它们的Y值后所得的新元组w、v仍在r中XYZs[X]v[X]w[X]t[X]tswvw[Y]s[Y]t[Y]v[Y]t[Z]v[Z]s[Z]w[Z]112多值依赖XY成立当且仅当对R(U)的任一关4.2数据依赖平凡的多值依赖:若XY,而Z=Ø,即Z为空,则称XY为平凡的多值依赖。若Z非空,则称XY为非平凡的多值依赖1134.2数据依赖平凡的多值依赖:344.2数据依赖3.多值依赖的性质:对称性:若XY,Z=UXY,则XZ。传递性:若XY,YZ,则XY−Z。函数依赖是多值依赖的特例:若XY,则XY。1144.2数据依赖3.多值依赖的性质:354.2数据依赖多值依赖的性质:若XY,XZ,则XY∩Z。若XY,XZ,则XY−Z,XZ

Y。1154.2数据依赖多值依赖的性质:364.2数据依赖4.多值依赖与函数依赖的区别(1)函数依赖XY的有效性仅取决于X、Y,与X、Y之外的属性无关:1164.2数据依赖4.多值依赖与函数依赖的区别374.2数据依赖多值依赖XY的有效性与X、Y之外的属性范围有关:若XY在U上成立,则在W(XYWU)上也成立,但反之不然。可缩小范围但不一定能扩大范围

X是否多值决定Y与这一部分属性密切相关XYZ

R(U):WXYR(W):W

XY在U上成立XY在W上也成立反之不成立1174.2数据依赖多值依赖XY的有效性与X、Y之外的属性范4.2数据依赖(2)对函数依赖,若XY,则对Y的任意子集Y’,都有XY’。对多值依赖,没有上述性质,即不能保证XY’成立。原因:在关系模式R(U)上,函数依赖XY的有效性仅仅取决于X、Y两个属性集合;而在多值依赖中XY在U上是否成立,不仅要检查X、Y上的属性值,而且要检查Z=U-X-Y上的值。1184.2数据依赖(2)对函数依赖,若XY,则对Y的任意子集4.2数据依赖四、键从函数依赖的角度给关键字一个形式化的定义。1.候选关键字和主关键字:设K是R<U,F>中的属性或属性组合,若候选关键字多于一个,则选定其中的一个作为主关键字(主键、主码)。f若KU,则称K为U的候选关键字(候选码);1194.2数据依赖四、键若候选关键字多于一个,则选定其中的一个4.2数据依赖2.外键(外部码)若R<U,F>中的属性或属性组合X不是R的关键字,但X是另一个关系的关键字,则称X是R的外键。主键与外键提供了一个表示关系间联系的手段。例1:S(Sno,Sname,Sage)Sno为主码SC(Sno,Cno,Grade)Sno为外码1204.2数据依赖2.外键(外部码)414.2数据依赖3.全键(All-key,全码)若R<U,F>的整个属性组是关键字,则称U是全键。1214.2数据依赖3.全键(All-key,全码)424.2数据依赖例2:R(P,W,A)其中各属性含义分别为:演奏者,作品和听众。其语义为:一个演奏者可演奏多个作品,某一作品可被多个演奏者演奏;听众也可欣赏不同演奏者的不同作品。

其候选码为:(P,W,A),因为只有这三者才能确定一场音乐会。我们称全部属性均为主码的表为全码表。1224.2数据依赖例2:R(P,W,A)其中各属性含义分别为:4.2数据依赖4.主属性和非主属性主属性:包含在某个候选关键字中的属性非主属性:不包含在任何侯选关键字中的属性例:SC(Sno,Cno,Grade)中,(Sno,Cno)是关键字,故Sno,Cno是主属性Grade不包含在任何关键字中,故Grade是非主属性。1234.2数据依赖4.主属性和非主属性44第4章关系数据库设计理论本章内容:问题提出2数据依赖规范化关系模式312综合举例4124第4章关系数据库设计理论本章内容:问题提出2数据依赖规范化4.3规范化的关系模式本节讨论下述问题:如何根据关系模式属性间的数据依赖情况来判断该关系模式是否合适?如何将具有不合适性质的关系模式转换为更合适的形式?1254.3规范化的关系模式本节讨论下述问题:464.3规范化的关系模式一、规范化1.范式(NormalForm)按关系模式所具有的数据依赖性质对关系模式的分类,也就是关系的规范化程度。满足不同程度要求的为不同范式。2.规范化把一个低一级范式的关系模式通过模式分解转化为若干个高一级的关系模式的过程。1264.3规范化的关系模式一、规范化471NF2NF3NFBCNF4NF5NF4.3规范化的关系模式1271NF2NF3NFBCNF4NF5NF4.3规范化的关系模4.3规范化的关系模式二、第一范式(1NF)1.定义:关系的每个分量必须是不可再分的数据项。记作R1NF。(每个属性必须是原子的)2.说明:属性不可再分(不允许出现嵌套的属性定义)属性下的值不可再分(不允许出现多个值)这是对关系的最起码的要求,但远远不够。(满足1NF的关系称为规范关系)1284.3规范化的关系模式二、第一范式(1NF)49系名称高职人数教授副教授计算机系610信息管理系35电子与通讯系48系名称教授副教授计算机系610信息管理系35电子与通讯系484.3规范化的关系模式不满足1NF范式的关系:129系名称高职人数教授副教授计算机系610信息管理系34.3规范化的关系模式3.仅属于1NF的关系模式可能会产生的问题:S-L-C(Sno,Sdept,Sloc,Cno,Grade)假设每个系的学生都住在一栋楼里,(Sno,Cno)为主码SnoSdeptSLOCCnoGrade9812101计算机2公寓DB809812101计算机2公寓OS859821101信息1公寓C909821101信息1公寓DS849821102信息1公寓OS78显然S-L-C1NF,但第一节中我们已讨论知它有四个严重问题。因此仅是第一范式的关系模式完全不能满足需要。1304.3规范化的关系模式3.仅属于1NF的关系模式可能会产4.3规范化的关系模式SnoSLOCSnoSdept主码为:(Sno,Cno)(Sno,Cno)Gradef在S-L-C中有如下函数依赖:1314.3规范化的关系模式SnoSLOC主码为:(Sno,C4.3规范化的关系模式分析出现问题的原因:

Sno函数决定非主属性Sdept、SLOC。因此,关键字(Sno,Cno)部分函数决定这些属性。这显然是产生冗余的一个主要原因。1324.3规范化的关系模式分析出现问题的原因:534.3规范化的关系模式三、第二范式(2NF)1.定义:若R1NF,且每一非主属性都完全函数依赖于R的任意一个候选码,则称R是第二范式,记作R2NF。2.属于1NF但不属于2NF的例子:例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)就不是2NF的。因为(Sno,Cno)是主码,而又有:Sno→Sdept,因此有:(Sno,Cno)Sdeptp1334.3规范化的关系模式三、第二范式(2NF)(Sno,Cn4.3规范化的关系模式3.2NF范式的性质如果R2NF,则R1NF。如果R的候选关键字是单属性或全键(All-key),则R2NF1344.3规范化的关系模式3.2NF范式的性质554.3规范化的关系模式2NF要求实体的非主属性完全依赖于主关键字。如果存在非主属性部分函数依赖主关键字一部分属性,那么这个属性和主关键字的这部分属性应该分离出来形成一个新的实体。即1NF范式中消除非主属性对主关键字的部分函数依赖,即可得到2NF。1354.3规范化的关系模式2NF要求实体的非主属性完全依赖于主4.分解过程为:用每个决定因素与它完全决定的属性构成一个关系模式,决定因素成为新模式的码。S-L-C关系模式分解后的形式为:

S-L(Sno,Sdept,Sloc)和S-C(Sno,Cno,Grade)S-L有:SnoSdept,Sno

SLOC:是2NFffS-C有:(Sno,Cno)

Grade:是2NFf4.3规范化的关系模式1364.分解过程为:S-L有:SnoSdept4.3规范化的关系模式分解前S-L-C(Sno,Sdept,Sloc,Cno,Grade)分解后S-C(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)分解之后,与S_L_C相比:数据冗余减小(原来伴随学生所学的每门课都要存储一遍SD、SL的值);没选课的学生信息可以存储;删除选课记录不会误删学生其他信息;冗余数据的减少使得修改变得容易些。1NF的上述四个问题得到了部分解决1374.3规范化的关系模式分解前S-L-C(Sno,Sdep4.3规范化的关系模式5.仅属于2NF的关系模式可能会产生的问题数据冗余数据冗余仍然较大:Sloc的值重复严重插入异常若一个系刚成立但尚无学生,该系名称等无法存储删除异常若一个系的学生全部毕业,删除全部学生数据的同时把该系的数据(如系名等)也都删除了修改困难数据冗余大势必造成修改困难(这可以说是个必然联系)可能的原因:存在传递函数依赖SnoSloc1384.3规范化的关系模式5.仅属于2NF的关系模式可能会产4.3规范化的关系模式四、第三范式(3NF)1.定义:如果R(U,F)∈2NF,并且所有非主属性对任何候选关键字都不存在传递依赖,则R(U,F)∈3NF。2.定理:若R3NF,则R2NF。

关系模式S-L(Sno,Sdept,Sloc),因为有:Sno→Sdept,Sdept→Sloc因此有:Sno传递→Sloc

因此,不是3NF的关系模式。1394.3规范化的关系模式四、第三范式(3NF)603.分解过程为(1)对于不是候选码的每个决定因子,从表中删去依赖于它的所有属性;(2)新建一个表,新表中包含在原表中所有依赖于该决定因子的属性;(3)将决定因子作为新表的主码。S-L分解后的关系模式为:S-D(Sno,Sdept)和S-L(Sdept,Sloc)对S-D,有:Snof→Sdept,因此S-D是3NF的对S-L,有:Sdeptf→Sloc,因此S-L也是3NF的通常在数据库设计中,一般要求要达到3NF。

1403.分解过程为614.3规范化的关系模式4.仅属于3NF的关系模式可能会产生的问题由上可知,部分函数依赖和传递函数依赖是产生异常的两个重要原因。3NF中不存在非主属性对于关键字的部分函数依赖和传递函数依赖,因此具有较好的性质。通常设计关系模式时至少应该是属于3NF的。虽说3NF是广泛使用的一种关系范式,但3NF仍然存在某些“异常”。1414.3规范化的关系模式4.仅属于3NF的关系模式可能会产4.3规范化的关系模式例:关系模式R(S,T,J)函数依赖:(S,J)T;(S,T)J;TJ候选关键字:(S,J);(S,T)R中无非主属性,显然R3NF。1424.3规范化的关系模式634.3规范化的关系模式五、Boyce-Codd范式(BCNF)1.定义:如果关系模式R中的所有属性包括主属性和非主属性,都不传递依赖于R的任何候选关键字,则称R是BCNF范式。记为RBCNF。2.另一种等价的定义:若R3NF,且对任何非平凡的函数依赖XY,X必包含候选码。则RBC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论