关系数据库的规范化设计.pptx

上传人:wj 文档编号:13045375 上传时间:2023-06-10 格式:PPTX 页数:80 大小:411.56KB
下载 相关 举报
关系数据库的规范化设计.pptx_第1页
第1页 / 共80页
关系数据库的规范化设计.pptx_第2页
第2页 / 共80页
关系数据库的规范化设计.pptx_第3页
第3页 / 共80页
关系数据库的规范化设计.pptx_第4页
第4页 / 共80页
关系数据库的规范化设计.pptx_第5页
第5页 / 共80页
关系数据库的规范化设计.pptx_第6页
第6页 / 共80页
关系数据库的规范化设计.pptx_第7页
第7页 / 共80页
关系数据库的规范化设计.pptx_第8页
第8页 / 共80页
关系数据库的规范化设计.pptx_第9页
第9页 / 共80页
关系数据库的规范化设计.pptx_第10页
第10页 / 共80页
关系数据库的规范化设计.pptx_第11页
第11页 / 共80页
关系数据库的规范化设计.pptx_第12页
第12页 / 共80页
关系数据库的规范化设计.pptx_第13页
第13页 / 共80页
关系数据库的规范化设计.pptx_第14页
第14页 / 共80页
关系数据库的规范化设计.pptx_第15页
第15页 / 共80页
关系数据库的规范化设计.pptx_第16页
第16页 / 共80页
关系数据库的规范化设计.pptx_第17页
第17页 / 共80页
关系数据库的规范化设计.pptx_第18页
第18页 / 共80页
关系数据库的规范化设计.pptx_第19页
第19页 / 共80页
关系数据库的规范化设计.pptx_第20页
第20页 / 共80页
亲,该文档总共80页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

关系数据库的规范化设计.pptx

《关系数据库的规范化设计.pptx》由会员分享,可在线阅读,更多相关《关系数据库的规范化设计.pptx(80页珍藏版)》请在冰点文库上搜索。

关系数据库的规范化设计.pptx

2023/6/10,1,本章重要概念,

(1)关系模式的冗余和异常问题。

(2)FD的定义、逻辑蕴涵、闭包、推理规则、与关键码的联系;平凡的FD;属性集的闭包;推理规则的正确性和完备性;FD集的等价;最小依赖集。

(3)无损分解的定义、性质、测试;保持依赖集的分解。

(4)关系模式的范式:

1NF,2NF,3NF,BCNF。

分解成2NF、3NF模式集的算法。

2023/6/10,2,前言,关系数据库的规范化设计是指面对一个现实问题,如何选择一个比较好的关系模式集合。

规范化设计理论主要包括三个方面的内容:

数据依赖、范式和模式设计方法。

其中数据依赖起着核心的作用。

数据依赖研究数据之间的联系,范式是关系模式的标准,模式设计方法是自动化设计的基础。

规范化设计理论对关系数据库结构的设计起着重要的作用。

2023/6/10,3,4.1.1关系模型的外延和内涵,外延就是通常所说的关系、表或当前值,它的基本性质已在前面介绍过。

由于用户经常对关系进行插入、删除和修改操作,因此外延是与时间有关的,随着时间的推移在不断变化。

内涵是与时间独立的,是对数据的定义以及数据完整性约束的定义。

对数据的定义包括对关系、属性、域的定义和说明。

对数据完整性约束的定义涉及面较广,主要包括以下几个方面:

静态约束,涉及到数据之间联系(称为“数据依赖,datadependences)、主键和值域的设计。

动态约束,定义各种操作(插入、删除、修改)对关系值的影响。

2023/6/10,4,4.1.2关系模式的冗余和异常问题

(一),例4.1,图4.1关系模式R的实例,2023/6/10,5,4.1.2关系模式的冗余和异常问题

(二),数据冗余如果一个教师教几门课程,那么这个教师的地址就要重复几次存储。

操作异常由于数据的冗余,在对数据操作时会引起各种异常:

修改异常。

例如教师t1教三门课程,在关系中就会有三个元组。

如果他的地址变了,这三个元组中的地址都要改变。

若有一个元组中的地址未更改,就会造成这个教师的地址不惟一,产生不一致现象。

插入异常。

如果一个教师刚调来,尚未分派教学任务,那么要将教师的姓名和地址存储到关系中去时,在属性C#和CNAME上就没有值(空值)。

在数据库技术中空值的语义是非常复杂的,对带空值元组的检索和操作也十分麻烦。

删除异常。

如果在图4.1中要取消教师t3的教学任务,那么就要把这个教师的元组删去,同时也把t3的地址信息从表中删去了。

这是一种不合适的现象。

2023/6/10,6,4.1.2关系模式的冗余和异常问题(三),2023/6/10,7,4.2.1函数依赖的定义

(一),定义4.1设有关系模式R(U),X和Y是属性集U的子集,函数依赖(FunctionalDependency,简记为FD)是形为XY的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有tX=sX蕴涵tY=sY,那么称FDXY在关系模式R(U)中成立。

2023/6/10,8,4.2.1函数依赖的定义

(二),例4.2,图4.3关系模式R的两个关系,2023/6/10,9,4.2.1函数依赖的定义(三),例4.3有一个关于学生选课、教师任课的关系模式:

R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE)属性分别表示学生学号、姓名、选修课程的课程号、成绩、课程名、任课教师姓名和年龄等意义。

如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一门课程,那么可写成下列FD形式:

S#SNAMEC#CNAME每个学生每学一门课程,有一个成绩,那么可写出下列FD:

(S#,C#)GRADE还可以写出其他一些FD:

C#(CNAME,TNAME,TAGE)TNAMETAGE,2023/6/10,10,4.2.2FD的逻辑蕴涵,定义4.2设F是在关系模式R上成立的函数依赖的集合,XY是一个函数依赖。

如果对于R的每个满足F的关系r也满足XY,那么称F逻辑蕴涵XY,记为FXY。

定义4.3设F是函数依赖集,被F逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集F的闭包(closure),记为F+。

即F+=XY|记为FXY。

2023/6/10,11,4.2.3FD的推理规则

(一),设U是关系模式R的属性集,F是R上成立的只涉及到U中属性的函数依赖集。

FD的推理规则有以下三条:

A1(自反性,Reflexivity):

若YXU,则XY在R上成立。

A2(增广性,Augmentation):

若XY在R上成立,且ZU,则XZYZ在R上成立。

A3(传递性,Transitivity):

若XY和YZ在R上成立,则XZ在R上成立。

2023/6/10,12,4.2.3FD的推理规则

(二),定理4.1FD推理规则A1、A2和A3是正确的。

也就是,如果XY是从F用推理规则导出,那么XY在F+中。

定理4.2FD的其他五条推理规则:

(1)A4(合并性,Union):

XY,XZXYZ。

(2)A5(分解性,Decomposition):

XY,ZYXZ。

(3)A6(伪传递性):

XY,WYZWXZ。

(4)A7(复合性,Composition):

XY,WZXWYZ。

(5)A8XY,WZX(WY)YZ。

2023/6/10,13,4.2.3FD的推理规则(三),例4.5已知关系模式R(ABC),F=AB,BC,求F+。

根据FD的推理规则,可推出F的F+有43个FD。

例如,据规则A1可推出A(表示空属性集),AA,。

据已知的AB及规则A2可推出ACBC,ABB,AAB,。

据已知条件及规则A3可推出AC等。

有兴趣的同学可推出这43个FD。

2023/6/10,14,4.2.3FD的推理规则(四),定义4.4对于FDXY,如果YX,那么称XY是一个“平凡的FD”,否则称为“非平凡的FD”。

定理4.3如果A1An是关系模式R的属性集,那么XA1An成立的充分必要条件是XAi(i=1,n)成立。

2023/6/10,15,4.2.4FD和关键码的联系,定义4.5设关系模式R的属性集是U,X是U的一个子集。

如果XU在R上成立,那么称X是R的一个超键。

如果XU在R上成立,但对于X的任一真子集X1都有X1U不成立,那么称X是R上的一个候选键。

本章的键都是指候选键。

例4.6在学生选课、教师任课的关系模式中:

R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE)如果规定:

每个学生每学一门课只有一个成绩;每个学生只有一个姓名;每个课程号只有一个课程名;每门课程只有一个任课教师。

根据这些规则,可以知道(S#,C#)能函数决定R的全部属性,并且是一个候选键。

虽然(S#,SNAME,C#,TNAME)也能函数决定R的全部属性,但相比之下,只能说是一个超键,而不能说是候选键,因为其中含有多余属性。

2023/6/10,16,4.2.5属性集的闭包,定义4.6设F是属性集U上的FD集,X是U的子集,那么(相对于F)属性集X的闭包用X+表示,它是一个从F集使用FD推理规则推出的所有满足XA的属性A的集合:

X+=属性A|XA在F+中定理4.4XY能用FD推理规则推出的充分必要条件是YX+。

例4.7属性集U为ABCD,FD集为AB,BC,DB。

则用上述算法,可求出A+=ABC,(AD)+=ABCD,(BD)+=BCD,等等。

2023/6/10,17,4.2.5FD推理规则的完备性,推理规则的正确性是指“从FD集F使用推理规则集推出的FD必定在F+中”,完备性是指“F+中的FD都能从F集使用推理规则集导出”。

也就是正确性保证了推出的所有FD是正确的,完备性保证了可以推出所有被蕴涵的FD。

这就保证了推导的有效性和可靠性。

定理4.5FD推理规则A1,A2,A3是完备的。

2023/6/10,18,4.2.6FD集的最小依赖集

(一),定义4.7如果关系模式R(U)上的两个函数依赖集F和G,有F+=G+,则称F和G是等价的函数依赖集。

定义4.8设F是属性集U上的FD集。

如果Fmin是F的一个最小依赖集,那么Fmin应满足下列四个条件:

F+min=F+;每个FD的右边都是单属性;Fmin中没有冗余的FD(即F中不存在这样的函数依赖XY,使得F与FXY等价);每个FD的左边没有冗余的属性(即F中不存在这样的函数依赖XY,X有真子集W使得FXYWY与F等价)。

2023/6/10,19,4.2.6FD集的最小依赖集

(二),例4.8设F是关系模式R(ABC)的FD集,F=ABC,BC,AB,ABC,试求Fmin。

先把F中的FD写成右边是单属性形式:

F=AB,AC,BC,AB,ABC显然多了一个AB,可删去。

得F=AB,AC,BC,ABCF中AC可从AB和BC推出,因此AC是冗余的,可删去。

得F=AB,BC,ABCF中ABC可从AB和BC推出,因此ABC也可删去。

最后得F=AB,BC,即所求的Fmin。

2023/6/10,20,4.3关系模式的分解4.3.1模式分解问题

(一),定义4.9设有关系模式R(U),属性集为U,R1、Rk都是U的子集,并且有R1R2RkU。

关系模式R1、Rk的集合用表示,=R1,Rk。

用代替R的过程称为关系模式的分解。

这里称为R的一个分解,也称为数据库模式。

2023/6/10,21,4.3.1模式分解问题

(二),图4.5模式分解示意图,2023/6/10,22,4.3.2无损分解

(一),例4.9,r,C,C,4,3,4,3,2023/6/10,23,4.3.2无损分解

(二),定义4.10设R是一个关系模式,F是R上的一个FD集。

R分解成数据库模式=R1,Rk。

如果对R中满足F的每一个关系r,都有r=R1(r)R2(r)Rk(r)那么称分解相对于F是“无损联接分解”(losslessjoindecomposition),简称为“无损分解”,否则称为“损失分解”(lossydecomposition)。

2023/6/10,24,4.3.2无损分解(三),定理4.6设=R1,Rk是关系模式R的一个分解,r是R的任一关系,ri=Ri(r)(1ik),那么有下列性质:

rm(r);若s=m(r),则Ri(s)=ri;m(m(r)=m(r),这个性质称为幂等性(Idempotent)。

2023/6/10,25,4.3.2无损分解(四),R,=,R,1,,,R,2,,,,,R,k,r,r,1,,,r,2,,,,,r,k,s,s,1,,,s,2,,,,,s,k,图中:

r,i,=,Ri,(,r,)(,1,i,k,),s,i,=,Ri,(,r,)(,1,i,k,),据性质,1.,有,r,m,(,r,),据性质,2.,有,s,i,=,r,i,(,1,i,k,),图4.8r的投影连接变换示意图,2023/6/10,26,4.3.2无损分解(五),图4.9泛关系假设下的示意图,图4.9泛关系假设时的示意图,2023/6/10,27,4.3.2无损分解(六),例4.10设关系模式R(ABC)分解成=AB,BC。

(a)和(b)分别是模式AB和BC上的值r1和r2,(c)是r1r2的值。

显然BC(r1r2)r2。

这里r2中元组(b2c2)就是一个悬挂元组,由于它的存在,使得r1和r2不存在泛关系r。

r,2023/6/10,28,4.3.3无损分解的测试方法

(一),算法4.3无损分解的测试构造一张k行n列的表格,每列对应一个属性Aj(1jn),每行对应一个模式Ri(1ik)。

如果Aj在Ri中,那么在表格的第i行第j列处填上符号aj,否则填上bij。

把表格看成模式R的一个关系,反复检查F中每个FD在表格中是否成立,若不成立,则修改表格中的值。

修改方法如下:

对于F中一个FDXY,如果表格中有两行在X值上相等,在Y值上不相等,那么把这两行在Y值上也改成相等的值。

如果Y值中有一个是aj,那么另一个也改成aj;如果没有aj,那么用其中一个bij替换另一个值(尽量把下标ij改成较小的数)。

一直到表格不能修改为止。

(这个过程称为chase过程)若修改的最后一张表格中有一行是全a,即a1a2an,那么称相对于F是无损分解,否则称损失分解。

2023/6/10,29,4.3.3无损分解的测试方法

(二),图4.12算法4.3的运用示意图

(一),(a)初始表格,(a)修改后的表格,(a)初始表格,(a)修改后的表格,图4.13算法4.3的运用示意图

(二),2023/6/10,30,4.3.3无损分解的测试方法(三),定理4.7设=R1,R2是关系模式R的一个分解,F是R上成立的FD集,那么分解相对于F是无损分解的充分必要条件是(R1R2)(R1R2)或(R1R2)(R2R1)。

定理4.8如果FDXY在模式R上成立,且XY=,那么R分解成=RY,XY是无损分解。

2023/6/10,31,4.3.4保持函数依赖的分解

(一),定义4.11设F是属性集U上的FD集,Z是U的子集,F在Z上的投影用Z(F)表示,定义为Z(F)=XY|XYF+,且XYZ定义4.12设=R1,Rk是R的一个分解,F是R上的FD集,如果有Ri(F)F,那么称分解保持函数依赖集F。

2023/6/10,32,4.3.4保持函数依赖的分解

(二),例4.12,2023/6/10,33,4.3.5模式分解与模式等价问题

(一),本节讨论的关系模式分解的两个特性实际上涉及到两个数据库模式的等价问题,这种等价包括数据等价和依赖等价两个方面。

数据等价是指两个数据库实例应表示同样的信息内容,用“无损分解”衡量。

如果是无损分解,那么对泛关系反复的投影和联接都不会丢失信息。

依赖等价是指两个数据库模式应有相同的依赖集闭包。

在依赖集闭包相等情况下,数据的语义是不会出差错的。

违反数据等价或依赖等价的分解很难说是一个好的模式设计。

2023/6/10,34,4.3.5模式分解与模式等价问题

(二),例4.13设关系模式R(ABC),=AB,AC是R的一个分解。

试分析分别在F1=AB,F2=AC,BC,F3=BA,F4=CB,BA情况下,是否具有无损分解和保持FD的分解特性。

相对于F1=AB,分解是无损分解且保持FD的分解。

相对于F2=AC,BC,分解是无损分解,但不保持FD集。

因为BC丢失了。

相对于F3=BA,分解是损失分解但保持FD集的分解。

相对于F4=CB,BA,分解是损失分解且不保持FD集的分解(丢失了CB),2023/6/10,35,4.4关系模式的范式,关系模式的好与坏,用什么标准衡量?

这个标准就是模式的范式(NormalForms,简记为NF)。

范式的种类与数据依赖有着直接的联系,基于FD的范式有1NF、2NF、3NF、BCNF等多种。

在不提及FD时,关系中是不可能有冗余的问题,但是当存在FD时,关系中就有可能存在数据冗余问题。

1NF是关系模式的基础;2NF已成为历史,一般不再提及;在数据库设计中最常用的是3NF和BCNF。

为了叙述的方便,我们还是从1NF、2NF、3NF、BCNF顺序来介绍。

2023/6/10,36,4.4.1第一范式(1NF),定义4.13如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式(firstnormalform,简记为1NF)的模式。

满足1NF的关系称为规范化的关系,否则称为非规范化的关系。

关系数据库研究的关系都是规范化的关系。

例如关系模式R(NAME,ADDRESS,PHONE),如果一个人有两个电话号码(PHONE),那么在关系中至少要出现两个元组,以便存储这两个号码。

1NF是关系模式应具备的最起码的条件。

2023/6/10,37,满足第一范式的(不好的)关系模式的例子,例4:

设有一关系R(S#,C#,G,TN,D),其中(S#)为学号,C#为课程号,G为成绩,TN为任课教师姓名,D为教师所在系名,这些数据具有下列语义:

(1)学号是一个学生的标识,课程号是一门课程的标识。

(2)一位学生所修的每门课程都有一个成绩。

(3)每门课程只有一位任课教师,但一位教师可以教多门课。

(4)教师中没有重名,每位教师只属于一个系。

2023/6/10,38,下面是一个具体实例:

学号课程号成绩教师系名,2023/6/10,39,虽然上述的关系模式只有四个属性,但在使用过程中有以下几个问题:

(1)数据冗余。

例如,教师所在系名对选该教师所开课的所有学生都重复一次。

(2)插入异常。

由于关系的主键S#,C#不能为空值,如果一个教师不教课,则这位教师的姓名及所属的系名就不能插入表中。

2023/6/10,40,(3)删除异常。

如果所有学生都退选某一门课,则有关该门课的其它数据(任课教师名及所在系名)也将被删除。

(4)修改异常。

例如,如果改变一门课的任课教师,则需要修改表中的多行记录,如果部分修改,部分不修改,则会导致数据的不一致。

上述关系模式只所以是一个不好的关系模式,是因为模式中存在部分函数依赖和传递函数依赖。

消除这些部分函数依赖和传递函数依赖,就可以得到一个比较好的关系模式。

2023/6/10,41,4.4.2第二范式(2NF)

(一),定义4.14对于FDWA,如果存在XW有XA成立,那么称WA是局部依赖(A局部依赖于W);否则称WA是完全依赖。

完全依赖也称为“左部不可约依赖”。

定义4.15如果A是关系模式R的候选键中属性,那么称A是R的主属性;否则称A是R的非主属性。

定义4.16如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么称R是第二范式(2NF)的模式。

如果数据库模式中每个关系模式都是2NF,则称数据库模式为2NF的数据库模式。

2023/6/10,42,4.4.2第二范式(2NF)

(二),例4.14设关系模式R(S#,C#,GRADE,TNAME,TADDR)的属性分别表示学生学号、选修课程的编号、成绩、任课教师姓名和教师地址等意义。

(S#,C#)是R的候选键。

R上有两个FD:

(S#,C#)(TNAME,TADDR)和C#(TNAME,TADDR),因此前一个FD是局部依赖,R不是2NF模式。

此时R的关系就会出现冗余和异常现象。

譬如某一门课程有100个学生选修,那么在关系中就会存在100个元组,因而教师的姓名和地址就会重复100次。

如果把R分解成R1(C#,TNAME,TADDR)和R2(S#,C#,GRADE)后,局部依赖(S#,C#)(TNAME,TADDR)就消失了。

R1和R2都是2NF模式。

2023/6/10,43,4.4.2第二范式(2NF)(三),算法4.4分解成2NF模式集的算法设关系模式R(U),主键是W,R上还存在FDXZ,并且Z是非主属性和XW,那么WZ就是一个局部依赖。

此时应把R分解成两个模式R1(XZ),主键是X;R2(Y),其中Y=U-Z,主键仍是W,外键是X(REFERENCESR1)。

利用外键和主键的联接可以从R1和R2重新得到R。

如果R1和R2还不是2NF,则重复上述过程,一直到数据库模式中每一个关系模式都是2NF为止。

2023/6/10,44,例:

是1NF但不是2NF的关系模式设有关系模式如下:

REPROT(S#,C#,TITLE,LNAME,ROOM#,MARKS),其中S#是学号,C#是课程号,TITLE为课程名,LNAME是教师名,ROOM#是教室号,MARKS是分数。

关系中的一个元组表示学生s在课程c中的得分为m,课程名为t,由教师l讲授,其教室编号为r。

若每门课只由一位教师讲授,每位教师只有一个教室,即只在一个教室中讲课,则REPORT的函数依赖如下:

(S#,C#)MARKSC#TITLEC#LNAMELNAMEROOM#,2023/6/10,45,关系模式REPROT(S#,C#,TITLE,LNAME,ROOM#,MARKS)的码是(S#,C#),非主属性TITLE,LNAME和ROOM#对码是部分函数依赖,并存在传递函数依赖C#LNAME,LNAMEROOM#。

REPORT属于1NF,不属于2NF。

图5-3,2023/6/10,46,消除部分函数依赖,为消除部分函数依赖,将REPORT关系模式分解为REPORT1和COURSE这二个关系模式:

REPORT1(S#,C#,MARKS)函数依赖是(S#,C#)MARKSCOURSE(C#,TITLE,LNAME,ROOM#)函数依赖是C#TITLE,C#LNAME,LNAMEROOM#。

REPORT1和COURSE都消除了对码的部分函数依赖,因此都属于2NF。

2023/6/10,47,一个关系模式仅仅满足2NF仍是不够的,如在关系模式COURSE(C#,TITLE,LNAME,ROOM#)中,仍存在着插入,删除和修改异常问题:

新来的教师,还没有分配授课之前,教师的姓名及教室编号都不能加到关系模式中;如果要修改教室编号,必须修改与教师授课相对应的各元组中的教室编号,因为一位教师可能会教多门课。

存在上述这些问题的原因是关系模式COURSE中存在传递函数依赖,所以要把关系模式COURSE向第三范式转化,除去非主属性对码的传递函数依赖。

2023/6/10,48,4.4.3第三范式(3NF)

(一),定义4.17如果XY,YA,且YX和AY,那么称XA是传递依赖(A传递依赖于X)。

定义4.18如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选键,那么称R是第三范式(3NF)的模式。

如果数据库模式中每个关系模式都是3NF,则称其为3NF的数据库模式。

2023/6/10,49,4.4.3第三范式(3NF)

(二),例4.15在例4.14中,R2是2NF模式,而且也已是3NF模式。

但R1(C#,TNAME,TADDR)是2NF模式,却不一定是3NF模式。

如果R1中存在函数依赖C#TNAME和TNAMETADDR,那么C#TADDR就是一个传递依赖,即R1不是3NF模式。

此时R1的关系中也会出现冗余和异常操作。

譬如一个教师开设五门课程,那么关系中就会出现五个元组,教师的地址就会重复五次。

如果把R2分解成R21(TNAME,TADDR)和R22(C#,TNAME)后,C#TADDR就不会出现在R21和R22中。

这样R21和R22都是3NF模式。

2023/6/10,50,4.4.3第三范式(3NF)(三),算法4.5分解成3NF模式集的算法设关系模式R(U),主键是W,R上还存在FDXZ。

并且Z是非主属性,ZX,X不是候选键,这样WZ就是一个传递依赖。

此时应把R分解成两个模式:

R1(XZ),主键是X;R2(Y),其中Y=U-Z,主键仍是W,外键是X(REFERENCESR1)。

利用外键和主键相匹配机制,R1和R2通过联接可以重新得到R。

如果R1和R2还不是3NF,则重复上述过程,一直到数据库模式中每一个关系模式都是3NF为止。

2023/6/10,51,4.4.3第三范式(3NF)(四),定理4.9如果R是3NF模式,那么R也是2NF模式。

定理4.10设关系模式R,当R上每一个FDXA满足下列三个条件之一时:

AX(即XA是一个平凡的FD);X是R的超键;A是主属性。

关系模式R就是3NF模式。

2023/6/10,52,4.4.3第三范式(3NF)(五),图4.15违反3NF的传递依赖的三种情况,2023/6/10,53,在前面的例子中,关系模式:

COURSE(C#,TITLE,LNAME,ROOM#)其中存在非主属性ROOM#对码的传递依赖,即:

C#LNAME,LNAMEROOM#,因此COURSE不属于3NF。

将COURSE分解为:

COURSE1(C#,TITLE,LNAME)和LECTURE(LNAME,ROOM#),则关系模式COURSE1和LECTURE中都没有传递函数依赖,因此COURSE1和LECTURE都属于3NF。

2023/6/10,54,至此,关系模式REPORT分解为下列3个属于3NF的一组关系模式:

REPORT1(S#,C#,MARKS

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2