




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 二 章 关系数据库规范化理论 建立在关系模型基础上实现的 数据库系统称为关系数据库,相应的DBMS称为关系数据库管理系统(RDBMS)。如何设计一个适合的关系数据库系统,关键是关系数据库模式的设计,一个好的关系数据库模式应该包括多少关系模式,而每一个关系模式又应该包括哪些属性,又如何将这些相互关联的关系模式组建一个适合的关系模型,这些工作决定了到整个系统运行的效率,也是系统成败的关键所在。要设计一个好的关系数据库,必须需要一定理论努指导。关系数据库的规范化理论就是数据库设计的一个理论指导。本章主要讨论关系数据库规范化理论,讨论一个好的关系模式的标准,以及如何将不好的关系模式转换成好的关系模
2、式第 二 章 关系数据库规范化理论 2.1 规范化问题的提出2.2 函数依赖2.3 关系规范化 2.4 关系模式的分解准则2.5 小结2.1 规范化问题的提出关系数据库的规范化理论最早是由关系数据库的创始人E.F.Codd提出的,后经许多专家学者对关系数据库理论作了深入的研究和发展,形成了一整套有关关系数据库设计的理论。关系数据库的规范化理论主要包括三个方面的内容:函数信赖范式(Normal Form)模式设计和模式分解其中,函数信赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。 2.1 规范化问题的提出数据库的设计为什么要遵循一定的规范化理论?什么是好的关系模式?某些不好
3、的关系模式可能导致哪些问题? 下面通过例子进行分析:例如,设有描述学生修课及住宿情况的关系模式:S-L-C(Sno,Sdept,Sloc,Cno,Grade)Sno表示学生学号, Sdept表示学生所在的 系,Sloc表示学生所住宿舍楼,Cno表示课程号, Grade表示成绩。 2.1 规范化问题的提出Sno Sdept SLOC Cno Grade 9812101 计算机 2公寓 DB 809812101 计算机 2公寓 OS 859821101 信息 1公寓 C 909821101 信息 1公寓 DS 849821102 信息 1公寓 OS 78S-L-C关系模式实例 分析以上关系中的数据
4、,我们可以看出:(SNO,CNO)属性的组合能唯一标识一个元组,所以(SNO,CNO)是该关系模式的主码。3. 删除异常 如果某个学生不再选修C课程,本应该只删去C,但C是主关系键的一部分,为保证实体完整性,必须将整个元组一起删掉,这样有关该学生的其它信息也随之丢失。2.1 规范化问题的提出但在进行数据库的操作时,会出现以下几方面的问题:1. 数据冗余 学生所在的系名和这个系所对应的宿舍楼名字存储的次数等于该系的学生人数乘以每个学生选修的课程门数,数据的冗余度很大,浪费了存储空间。2. 插入异常 如果某个学生尚未选课, 则学生所在的系名和这个系所对应的宿舍楼无法插入到数据库中。 因为在这个关系
5、模式中,(SNO,CNO)是主关系键。根据关系的实体完整性约束,主关系键的值不能为空,当某个学生尚未选课,即Cno为空, 因此不能进行插入操作。2.1 规范化问题的提出4. 更新异常 如果某一学生从计算机系转到信息系,那么不但要修改此学生的Sdept列的值,而且还要修改其Sloc的值,稍有不慎,就有可能漏改某些记录,这就会造成数据的不一致性,破坏了数据的完整性。由于存在以上问题,我们说,S-L-C是一个不好的关系模式。那么,怎样才能得到一个好的关系模式呢?我们把关系模式S-L-C分解为下面三个结构简单的关系模式,如图所示。Sno Sdept SLOC Cno Grade 9812101 计算机
6、 2公寓 DB 809812101 计算机 2公寓 OS 859821101 信息 1公寓 C 909821101 信息 1公寓 DS 849821102 信息 1公寓 OS 78Sno Cno Grade 9812101 DB 809812101 OS 859821101 C 909821101 DS 849821102 OS 78Sdept Sloc 计算机 2公寓 信息 1公寓 Sno Sdept 9812101 计算机 9821102 信息 2.1 规范化问题的提出S-LS-DS-C学生关系S-D(Sno, Sdept) 选课关系S-C(Sno,Cno,Grade)系关系S-L(Sde
7、pt,Sloc)2.1 规范化问题的提出在以上三个关系模式中,实现了信息的某种程度的分离, S-D中存储学生基本信息,与所选课程及宿舍无关; S-L中存储系的有关信息,与学生无关; S-C中存储学生选课的信息,而与学生及系的有关信息无关。与S-L-C相比,分解为三个关系模式后,数据的冗余度明显降低。当新插入一个系时,只要在关系S-L中添加一条记录。当某个学生尚未选课,只要在关系S-D中添加一条学生记录,而与选课关系无关,这就避免了插入异常。 当某个学生选课后又退选,只需在S-C中删除该学生记录,而关系S-D中有关该学生的信息仍然保留,从而不会引起删除异常。 同时,由于数据冗余度的降低,数据没有
8、重复存储,也不会引起更新异常。 2.1 规范化问题的提出经过上述分析,我们说分解后的关系模式是一个好的关系数据库模式。一个好的关系模式应该具备以下四个条件:尽可能少的数据冗余没有插入异常没有删除异常没有更新异常如何按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,从而把不好的关系数据库模式转变为好的关系数据库模式,这就是关系的规范化。规范化又可以根据不同的要求而分成若干级别。我们要设计的关系模式中的各属性是相互依赖、相互制约的,这样才构成了一个结构严谨的整体。因此在设计关模式时,必须从语义上分析这些依赖关系。2.2 函数依赖1.函数依赖的定义 函数对我们来说已经是非常熟悉的概念
9、,对公式: Y=f(X)给定一个X值,都会有一个Y值和它对应,也可以说X函数决定Y,或Y函数依赖于X。在关系数据库中讨论函数或函数依赖注重的是语义上的关系,比如: 省=f(城市)如果“城市”是自变量X,“省”是因变量或函数值Y。并且把X决定Y,或Y函数依赖于X表示为: XY2.2 函数依赖函数依赖定义:如果有一个关系模式R(A1,A2,An),X和Y为A1,A2,An的子集,那么对于关系R中的任意一个X值,都只有一个Y值与之对应,则称X函数决定Y,或Y函数依赖于X。 例如:对学生关系模式:Student(Sno, SName, Sdept, Sage)有:SnoSName, SnoSdept,
10、 SnoSage 对学生修课关系模式:SC(Sno, Cno, Grade)有:(Sno, Cno)Grade2.2 函数依赖2函数依赖与属性之间的联系类型有关(1)在一个关系模式中,如果属性X与Y有1:1联系时,则存在函数依赖XY,YX,即 X Y(2)如果属性X与Y有1:m的联系时,则只存在函数依赖XY。 例如,Sno与Sage,Sdept之间均为1:m联系,所以有 SNOSage,SnoSdept。(3)如果属性X与Y有m: n的联系时,则X与Y之间不存在任何函数依赖关系。 例如,一个学生可以选修多门课程,一门课程又可以为多个学生选修,所以SNO与CNO之间不存在函数依赖关系。由于函数依
11、赖与属性之间的联系类型有关,所以在确定属性间的函数依赖关系时,可以从分析属性间的联系类型入手,便可确定属性间的函数依赖。 例如,当学生无重名时,SNO SN2.2 函数依赖3一些术语和符号 设有关系模式R(A1,A2,An),X和Y均为A1,A2,An的子集如果XY,但Y不包含于X,则称XY是非平凡的函数依赖。如果XY,则称X为决定因子。fXYXYp 如果Y函数不依赖于X,则记作X Y 。如果对X的某个真子集X,有XY,则称Y部分函数依赖于X,(或称Y对X部分函数依赖)记作 。 如果XY,并且YX,则记作X Y。如果XY,并且对于X的一个任意真子集X/ 都有X/ Y,则称Y完全函数依赖于X(Y
12、对X 完全函数依赖),记作2.2 函数依赖 例1:有关系模式:SC(Sno,Sname,Cno,Credit,Grade) 各属性分别为:学号、姓名、课程号、学分、成绩,主码为(Sno, Cno)fp函数依赖关系有:SnoSname 姓名函数依赖于学号因为Sno Grade,Cno Grade, (Sno,Cno) Grade, 所以有(Sno, Cno) Grade 成绩完全函数依赖于学号和课程号(Sno, Cno) Sname 姓名部分函数依赖于学号和课程号2.2 函数依赖如果XY(非平凡函数依赖,并且Y X)、YZ,则称Z传递函数依赖于X(或称Z对X传递函数依赖)。 例如:在关系模式:S
13、(Sno,Sname,Dept,Dept_master)中, 各属性分别为:学号、姓名、所在系和系主任(假设一个系只有一 个主任),主码为Sno。 传递函数依赖关系有: Sno Sname 由于:Sno Dept , Dept Dept_master所以有:Sno Dept_master(系主任传递函数依赖于学号)一.关系模式中的码 1候选码 设K为R (U, F)中的属性或属性组,若K U,则K为R候选码。(U-表示关系R的属性全集, F-表示关系R上的依赖函数集)主码:关系R (U, F)中可能有多个候选码,则选其中一个作为 主码全码:候选码为整个属性组。主属性与非主属性:在R (U, F
14、)中,包含在任一候选码中的属性称为主属性,不包含在任一候选码中的属性称为非主属性。 例1:SC(Sno,Cno,Grade)其候选码为:(Sno,Cno),也为主码则主属性为: Sno,Cno , Grade为非主属性。 2.3 关系规范化f 2.3 关系规范化一.关系模式中的码 例2:R(P,W,A) 其中各属性含义分别为: 演奏者,作品和听众。其语义为:一个演奏者可演奏多个作品,某一作品可被多个演奏者演奏;听众也可欣赏不同演奏者个不同作品。其候选码为:(P,W,A),因为只有这三者才能确定一场音乐会。我们称全部属性均为主码的表为全码表。2外码 定义:若R(U,F)的属性(组)X(X属于U)
15、是另一个关系S的主码,则称X为R的外码。 例3: 学生关系SD(Sno, Sdept)和选课关系SC(Sno,Cno,Grade),SC中的Sno是SD中的主码,则Sno是SC的外码 2.3 关系规范化二.范式规范化的基本思想是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,解决数据插入、更新、删除时发生异常现象。这就要求关系数据库设计出来的关系模式要满足一定的条件。我们把关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准称为范式(Normal Form)。由于规范化的程度不同,就产生了不同的范式。满足最基本规范化要求的关系模式叫第一范式(1NF)在第一范式中进一步满足一些要
16、求为第二范式(2NF)以此类推就产生了第三范式(3NF)等概念。每种范式都规定了一些限制约束条件。 2.3 关系规范化二.范式范式的概念最早由E.F.Codd提出。从1971年起,Codd相继提出了关系的三级规范化形式,即第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。1974年,Codd和Boyce以共同提出了一个新的范式的概念,即Boyce-Codd范式,简称BC范式。1976年Fagin提出了第四范式,后来又有人定义了第五范式。至此在关系数据库规范中建立了一个范式系列:1NF,2NF,3NF,BCNF,4NF,5NF,一级比一级有更严格的要求。2.3 关系规范化 4NF5NF
17、BCNF3NF2NF1NF规范与非规范关系各个范式之间的联系可以表示为: 5NF 4NF BCNF 3NF 2NF 1NF2.3 关系规范化1第一范式 第一范式(First Normal Form)是最基本的规范形式,即关系中每个属性都是不可再分的简单项。 定义:如果关系模式R,其所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,简称1NF,记作R1NF。 系名称 高级职称人数教授 副教授 计算机系 610信息管理系 35电子与通讯系 48系名称教授 副教授 计算机系 610信息管理系 35电子与通讯系 482.3 关系规范化2第二范式 定义:如果关系模式R1NF,并且R中
18、的每个非主属性都完全函数 依赖于主码,则R2NF。 例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)就不是2NF的。 因为(Sno,Cno)是主码,而又有:SnoSdept, 因此有:(Sno,Cno) Sdept p即存在非主属性对主码的部分函数依赖,所以S-L-C不是2NF。2.3 关系规范化2第二范式 分解过程为:首先,对于组成主码的属性集合的每一个子集,用它作为主码构成一个表。S-C(Sno,Cno),S(Sno),C(Cno) fff 对于每个表,将依赖于此主码的属性放置到此表中。 S-L-C关系模式分解后的形式为: S-L(Sno,Sdept,Sloc)和S-C(
19、Sno, Cno,Grade) S-L有:Sno Sdept,Sno SLOC:是2NF S-C有:(Sno, Cno) Grade:是2NF2.3 关系规范化2第二范式 2NF的缺点2NF的关系模式在进行数据操作时,仍然存在着一些问题:数据冗余 每个系名和所在的宿舍楼名字存储的次数等于该系的学生人数。插入异常 当一个新系没有招生时,有关该系的信息无法插入。删除异常 某系学生全部毕业而没有招生时,删除全部学生的记录也随之删除了该系的有关信更新异常 更换系所在宿舍楼名字时,仍需改动较多的学生记录。之所以存在这些问题,是由于在S-L表中存在着非主属性对主码的传递依赖。分析S-L表中函数依赖关系,S
20、noSdept,SdeptSloc,SnoSloc,非主属性Sloc对主码Sno传递依赖。为此,对关系模式还需进一步简化,消除这种传递依赖,得到3NF。 S-L分解后的关系模式为:S-D(Sno,Sdept)和D-L(Sdept,Sloc) 对S-D,有:Sno Sdept,因此S- D是3NF的 对D-L,有:Sdept Sloc,因此D-L也是3NF的2.3 关系规范化3第三范式 定义:如果R(U,F) 2NF,并且所有非主属性都不传递依赖于主码,则 R(U,F) 3NF。 ff关系模式S-L(Sno,Sdept,Sloc)不是3NF。分解过程为: (1)对于不是候选码的每个决定因子,从表
21、中删去依赖于它的所有属性; 得到S-D(Sno,Sdept) (2)新建一个表,新表中包含在原表中所有依赖于该决定因子的属性; (3)将决定因子作为新表的主码。新建的表:D-L(Sdept,Sloc) 2.3 关系规范化3第三范式 关系模式S-L由2NF分解为3NF后,函数依赖关系变得更加简单,既没有非主属性对主码的部分依赖,也没有非主属性对主码的传递依赖,解决了2NF中存在的四个问题。数据冗余降低。系所在的宿舍楼名字存储次数与该系的学生人数无关,只在关系D-L中存储一次不存在插入异常。当一个新系没有学生时,该系的信息可以直接插入到关系D-L中,而与学生关系S-D无关不存在删除异常。要删除某系
22、的全部学生而仍然保留该系的有关信息时,可以只删除学生关系S-D中的相关学生记录,而不影响系关系D-L中的数据。不存在更新异常。更换所在的宿舍楼时,只需修改关系D-L中一个相应元组的Sloc属性值,从而不会出现数据的不一致现象。 S-L-C规范到3NF后,所存在的异常现象已经全部消失。通常在数据库设计中,一般要求要达到3NF。 3第三范式 但是3NF只限制了非主属性对码的依赖关系,而没有限制主属性对码的 依赖关系。 例如:设关系模式SNC(SNO,SN,CN0,SCORE),其中SNO代表学号,SN代表学生姓名并假设没有重名,CNO代表课程号,SCORE代表成绩。可以判定,SNC有两个候选码(S
23、NO,CNO)和(SN,CNO),其函数依赖如下: SNO SN (SNO,CNO)SCORE (SN,CNO)SCORE 如某个同学需要改名,则需要将该学生的所有记录都要进行修改,稍有不慎,就有可能漏改某些记录,这就会造成数据的不一致性。产生操作异常的原因: (SNO,CNO) SN,即存在主属性对码的部分函数依赖为了解决这种问题,Boyce与Codd共同提出了一个新范式的定义,这就是Boyce-Codd范式,通常简称BCNF或BC范式。它弥补了3NF的不足。2.3 关系规范化p 但是,因为SNO SN,即决定因素SNO或SN不包含候选码, 从另一个角度说,存在着主属性对码的部分函数依赖:
24、(SNO,CNO) SN, (SN,CNO) SNO, 所以SNC不是BCNF。2.3 关系规范化4BC范式 (BCNF) 定义:若关系模式R1NF,对于关系R的每个函数依赖XY且YX, X必含有候选码,则RBCNF。 即每个决定属性集都包含候选码。上面例子中唯一的非主属性SCORE对码不存在部分函数依赖,也不存在传递函数依赖。所以SNC3NF。 pp2.3 关系规范化4BC范式 (BCNF) 解决这一问题的办法仍然是通过投影分解进一步提高SNC的范式等级,将SNC规范到BCNF。 可以将SNC分解成如下两个关系:S1(SNO,SN),S2(SNO,CNO,SCORE) 对于S1,有两个候选码
25、SNO和SN,对于S2,主码为(SNO,CNO)。在这两个关系中,每个决定属性集都包含候选码(即无论主属性还是非主属性都不存在对码的部分依赖和传递依赖),S1BCNF,S2BCNF。关系SNC转换成BCNF后,数据冗余度明显降低。学生的姓名只在关系S1中存储一次,学生要改名时,只需改动一条学生记录中的相应的SN值,从而不会发生修改异常。SNOSNS1中的函数依赖关系SNOCNOSCORES2中的函数依赖关系2.4 关系模式的分解准则关系规范化的目的:解决关系模式中存在的插入、删除、更新操作异常,数据冗余问题.关系规范化的方法:围绕函数依赖的主线,对一个关系模式进行分解,使关系从较低级范式变换到
26、较高级范式。(模式分解) 分解关系模式,逐步消除不合适的函数依赖1NF2NF 3NF BCNF 消除非主属性对码的部分函数依赖消除非主属性对码的传递函数依赖消除主属性对码的部分和传递函数依赖2.4 关系模式的分解准则模式分解的准则:模式分解具有无损连接性: 分解后的关系通过自然连接可以恢复成原来的关系,即通过自然连接得到的关系与原来的关系相比,既不多出信息、又不丢失信息。 模式分解能够保持函数依赖: 在模式的分解过程中,函数依赖不能丢失的特性,即模式分解不能破坏原来的语义。2.4 关系模式的分解准则例:S-D-L(Sno,Dept,Loc)有函数依赖: Sno Dept, Dept Loc 不
27、是第三范式的。至少可以有三种分解方案,分别为:方案1:S-L(Sno,Loc),D-L(Dept,Loc)方案2:S-D(Sno,Dept),S-L(Sno,Loc)方案3:S-D(Sno,Dept),D-L(Dept,Loc) 这三种分解方案得到的关系模式都是第三范式的,那么如何比较这三种方案的好坏呢?由此在将一个关系模式分解为多个关系模式时除了提高规范化程度之外,还需要遵守一定的准则.三种分解方案是否都满足分解准则呢?2.4 关系模式的分解准则假设此关系模式的数据如表2-1所示,此关系用r表示。 Sno Dept Loc S01D1 L1 S02 D2 L2 S03 D2 L2S04 D3 L1表212.4 关系模式的分解准则方案1:将S-D-L分解投影得到S-L和D-L关系Sno Loc S01L1 S02 L2 S03 L2S04 L1 Dept Loc D1 L1 D2 L2 D3 L1 S-LD-LSno Dept Loc S01D1 L1 S01D3L1S02 D2 L2 S03 D2L2S04D1 L1S04 D3L1表22结论: 方案1不满足无损连接性自然连接2.4 关系模式的分解准则方案2: 将S-D-L分解投影得到S-D和S-L关系Sno DeptS01D1S02 D2S03 D2S04 D3 Sno Loc S01L1 S02 L2 S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 燃油喷射系统喷射压力波动对燃油经济性的影响考核试卷
- 土壤健康与肥力管理考核试卷
- 孕妇胎儿发育监测设备考核试卷
- 2024年新疆于田县普通外科学(副高)考试题含答案
- 影像设备管理办法
- 惠州造价管理办法
- 林木安全管理办法
- 更生制造管理办法
- 影视器材管理办法
- 成本水价管理办法
- 人教版四年级语文下册古诗词专项全能训练
- 脑血流调节机制在高颅压中的作用
- 2024年人民日报社招聘笔试参考题库附带答案详解
- 多媒体互动展厅建设规划设计方案
- TCALC 003-2023 手术室患者人文关怀管理规范
- 复方氨基酸(19)丙谷二肽注射液-临床用药解读
- 微创外科进展课件
- 人教版小学英语PEP三至六年级单词默写纸(汉译英+英译汉)
- 甲状腺肿瘤消融治疗理论知识考核试题及答案
- 《手穴保健操》课件
- 广东省广州市白云区2023-2024学年九年级上学期期中物理试卷
评论
0/150
提交评论