版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章关系数据库理论5.1关系模式设计中的问题5.2函数依赖5.3函数依赖的公理系统5.4关系模式规范形式5.5关系模式的规范化习题55.1关系模式设计中的问题
随着时间的不断变化,关系也会有所变化。
从理论上能否找到判断设计好的数据库模式的标准?
例如:在校大学生的学习情况会涉及的属性:
学号(S#)、姓名(SN)、性别(SS)、 身份证号(ID)、系别(SD)、学籍类型(SL)、专业(SG)、班级(SC)、课程号(CB)、课程名(CN)、学期数(T)、学分(CG)、
成绩(G),其属性集合表示为U={S#,SN,SS,ID,SD,SL,SG,SC,CB,CN,T,CG,G}。 有人给出了如表5.1所示的表:表5.1关系r关系r存在问题?学号课程号课程名学期数学分成绩关系r存在的弊病:
(1)冗余。课程号为J1的课程在第4学期开,课程名是“数据库系统”,在关系r的5个元组中都有记载----冗余。
(2)插入异常。如果有一门课,课程号为J5,课程名为“编译原理”,学分为3,计划在第5学期开,但因为学生还未选课,学号没有确定值,构不成一个元组,无法插入到关系r中去。 存在计划开设的课程因为暂时没有学生选,无法将这些课程号和课程名等信息保存到数据库中---插入异常。(3)删除异常。如果学号1110703的学生考J2课时违纪,分数作废,应在关系r中删去这个元组。 但这个元组还包含课程号为J2,课程名为数据结构,学分为3的信息。要删除只能删除整个元组.
因学号为1110703的学生的J2课分数作废,而把课程号为J2,课程名为“数据结构”,学分为3的信息也给“冤枉”地删除掉了----删除异常。 不管目前有无学生学习“数据结构”这门课程,这门课程的相关信息应保留在数据库中,
在数据库模式中,针对关系模式的某一关系r为什么会存在上述弊端呢?怎样才能在同一个属性集U上给出没有这些弊端的数据库模式呢?5.2函数依赖
在现实世界中最广泛存在的一种数据依赖是函数依赖。例如,表5.1关系r的关系模式
R={S#,CB,CN,T,CG,G}
存在的函数依赖有:T函数依赖于CB,CN函数依赖于CB,CG函数依赖于CB,G函数依赖于(S#,CB)等。学号(S#)、课程号(CB)、课程名(CN)、学期数(T)、学分(CG)、 成绩(G),5.2.1函数依赖的概念函数依赖(FunctionalDependency,简记为FD)定义5.1设R(U)是属性集U上的一个关系模式,
X,YU。若对R(U)中任意一个可能关系r,r中不可能有两个元组在X的属性分量值相等,而在Y的那些属性分量值不相等,则称“X函数决定Y”,或“Y函数依赖于X”,记作X→Y。
X称为决定因子,或称为函数依赖的左部,Y称为函数依赖的右部。
另一种等价定义为:设R(U)是属性集U上的一个关系模式,X,YU。对R(U)中任意一个可能关系r中的任意两个元组t和s,若有t[X]=s[X],则有t[Y]=s[Y],就称“X函数决定Y”,或“Y函数依赖于X”。对函数依赖,需要强调几点:
(1)当确定关系模式R中的某个函数依赖时,是指R的所有可能关系r都必须满足这个函数依赖;反之,如果R中只要有一个关系r不满足这个函数依赖,就认为R不存在这个函数依赖。(2)当在确定一个关系模式中的函数依赖时,只能从属性含义上加以说明,而不能在数学上加以证明。
(3)只有数据库设计者才能决定是否存在某种函数依赖。这就使得数据库系统可以根据设计者的意图来维护数据库的完整性。例如:关系模式R={S#,CB,CN,T,CG,G}中的函数依赖可表示为:
CB→T;(S#,CB)→G;CB→CN;CB→CG等等。学号(S#)、课程号(CB)、课程名(CN)、学期数(T)、学分(CG)、 成绩(G),5.2.2几种特定的函数依赖
1.非平凡函数依赖和平凡函数依赖定义5.3设关系模式R(U),X、YU:
如果X→Y,且Y不是X的子集,则称X→Y为非平凡的函数依赖;如果X→Y,且YX,则称X→Y为平凡的函数依赖。
2.完全函数依赖和部分函数依赖定义5.4设关系模式R(U),X,YU:
如果X→Y,并且对于X的任何一个真子集Z,Z→Y都不成立,则称Y完全函数依赖于X;
若X→Y,但对于X的某一个真子集Z,有Z→Y成立,则称Y部分函数依赖于X。
例如:关系模式R={S#,CB,CN,T,CG,G}中,CB→T说明T完全函数依赖于CB;
(S#,CB,CN)→G,G部分依赖于(S#,CB,CN)因为(S#,CB)→G,。3.传递函数依赖定义5.5设关系模式R(U),XU,YU,ZU。如果X→Y,Y→Z成立,但Y→X不成立,且Z-X、Z-Y和Y-X均不空,则称X→Z为传递函数依赖。
例如:关系模式R={A,B,C,D},其上的函数依赖集F={A→B,B→C,A→C,AB→D},则A→C为传递函数依赖。注:在函数依赖中还有两种特殊的函数依赖:X→Φ和Φ→Y,它们对于任意关系都是成立的。 不考虑这样的函数依赖。5.2.3逻辑蕴涵
在讨论函数依赖时,有时需要从一些已知的函数依赖去判断另一些函数依赖是否成立。这个问题称为逻辑蕴涵问题。
1.F逻辑蕴涵X→Y
定义5.6设关系模式R(U),X,YU,F是关于R的函数依赖集合。又设X→Y为R中的一个函数依赖,就说F逻辑蕴涵X→Y,或称X→Y可从F推导出来的,或称X→Y逻辑蕴涵于F。
2.函数依赖集合F的闭包定义5.7所有被F逻辑蕴涵的那些函数依赖组成的集合称为F的闭包,记为F+。
设关系模式R(U),U={A,B,C},F={AB→C,C→B}是R(U)上的一组函数依赖, 则F+={A→A,B→B,C→C,C→B,C→BC,AB→A,AB→B,AB→C,AB→AB,AB→AC,AB→BC,AB→ABC,AC→A,AC→B,AC→C,AC→AC,BC→B,BC→C,BC→BC,ABC→A,ABC→B,ABC→C,ABC→AB,ABC→AC,ABC→BC,ABC→ABC}5.3函数依赖的公理系统5.3.1Armstrong公理系统
1.Armstrong公理系统的三条推理规则设关系模式R(U),X,Y,Z,WU,F是R的一个函数依赖集合,则Armstrong公理系统包含如下三条推理规则:
(1)自反律(Reflexivity):若YXU,则F蕴涵X→Y。(2)增广律(又称外延性,augmentation):若F蕴涵X→Y,ZU,则F蕴涵XZ→YZ。(3)传递律(transitivity):若F蕴涵X→Y和Y→Z,则F蕴涵X→Z。
Armstrong公理提供一整套推理规则,它能从F推导出F+中的所有依赖(完备性),从F推不出任何不属于F+的依赖(正确性)。2.Arestrong公理的三个推论
由Arestrong公理可得到下面三个推论:
(1)合并规则:若X→Y,X→Z,则X→YZ。
(2)分解规则:若X→Y且ZY,则X→Z。
(3)伪传递规则:若X→Y,YZ→W,则XZ→W。
定理5.2合并规则、分解规则、伪传递规则是正确的。证明:①若X→Y,根据增广律得,XX→XY,即X→XY。若X→Z,根据增广律得,XY→YZ,根据传递律得,X→YZ。②若ZY,根据自反律得,Y→Z,又已知X→Y,根据传递律得,X→Z。③若X→Y,根据增广律得,XZ→YZ,又已知YZ→W,根据传递律得,XZ→W。属性集合X关于函数依赖集F的闭包
定义5.8设关系模式R(U),U={A1,A2,…,An},Ai∈U,XU,X+={Ai|X→Ai能由F根据Armstrong公理系统导出且Ai∈U}, 则称X+是属性集合X关于函数依赖集F的闭包。
算法5.1计算属性集X的闭包X+。输入:属性集X和函数依赖集F。输出:关于F的X的闭包X+。方法:①令X(0)=X,i=0;②令X(i+1)=X(i)∪{A|VX(i),V→W∈F,A∈W};③若已经没有V→W∈F,能使X(i+1)≠X(i),则X+=X(i),输出X+,算法结束;否则,令i=i+1,转去执行第(2)步。【例】设关系模式R(U)上的函数依赖集为F,U={A,B,C,D,E,I};F={A→D,AB→E,BI→E,CD→I,E→C},试计算(AE)+。解:令X(0)=AE,i=0;
在F中找出左边是AE子集的函数依赖,A→D,,因则X(1)=AED;
因E→C,则X(2)=AEDC;因CD→I,则X(3)=AEDCI;
因已没有V→W∈F,能使X(3+1)≠X(3),则X+=X(3),
即(AE)+=ACDEI。
【例】设有关系模式R(U),U={A,B,C,D,E},
F={A→BC,CD→E,B→D,E→A},
求B+F?A+F?B+F={B,D},A+F={A,B,C,D,E}
引理5.1设关系模式R(U),U={A1,A2,…,An},Ai∈U,XU,X→A1A2…An成立的充分必要条件是X→Ai(i=1,2,…,n)都成立。
根据合并规则和分解规则,很容易得到这个引理的证明。
引理5.2设F是关系模式R(U)上的函数依赖集,
X、YU,X→Y能由F根据Armstrong公理系统导出的充分必要条件是YX+F。
例:关系模式R(CITY,ST,ZIP),其中CITY表示城市,ST表示城市的街道,ZIP表示街道所在地区的邮政编码, 函数依赖集合F={(CITY,ST)→ZIP,ZIP→CITY}, 证明{ST,ZIP}和{CITY,ST}是候选键。
{ST,ZIP}+=?{CITY,ST}+=?证:因为ZIP→CITY(由给定条件得出)
(ST,ZIP)→(CITY,ST)(由增广律得出)
(CITY,ST)→ZIP(由给定条件得出)
(CITY,ST)→(CITY,ST,ZIP)(由增广律得出)
(ST,ZIP)→(CITY,ST,ZIP)(由传递律得出)并且,ST→(CITY,ST,ZIP)和ZIP→(CITY,ST,ZIP)均不成立,所以(ST,ZIP)是候选键。同理可证(CITY,ST)也是候选键。证毕。另:{ST,ZIP}+=?{CITY,ST}+=?
5.3.2附加内容--候选键的求解理论给定R(A1,A2,A3…AM)和函数依赖集Fmin,则属性分为四类:
L类:仅出现在F中左部的属性;
R类:仅出现在F中右部的属性;
N类:在F的左部、右部均不出现的属性;
LR类:在F的左部、右部均出现的属性;候选键的求解理论定理1:对给定的R(U,Fmin),若XU是L类属性,则X必为R的任一候选键的成员。若X+包含了R的全部属性,则X为R的唯一候选键。例:R(A,B,C,D),Fmin={D->B,B->D,AD->B,AC->D},A,C是L类属性,是候选键的成员,(AC)+=ABCD,AC为R的唯一候选键。候选键的求解理论定理2:对给定的R(U,Fmin),若XU是N类属性,则X必为R的任一候选键的成员。定理3:对给定的R(U,Fmin),若XU是R类属性,则X不在R的任一候选键中。推论:对给定的R(U,Fmin),若XU是N和L类属性的集合,且X+包含了R的全部属性,则X为R的唯一候选键。问题:R(A,B,C,D,E,P),Fmin={A->D,E->D,D->B,BC->D,DC->A},求R的候选键?问题:R(A,B,C,D,E,P),
Fmin={A->D,E->D,D->B,BC->D,DC->A}, C、E:L类属性(仅出现在F中左部);
P:N类属性(在F的左部、右部均不出现);
A、B、D:LR类属性(在F的左部、右部均出现);无R类属性:仅出现在F中右部的属性;(CEP)+=
ABCDEPCEP为R的惟一候选键求出一个关系模式的候选键的方法:
(1)若X是L、N类属性,则X必包含在R的任一候选键中。
(2)若X是R类属性,则X不在任一候选键中。(3)若X是LR类属性,则X可能在任一候选键中
(4)若X是N类和L类组成的属性集,且X+包含了R的全部属性,则X是R的惟一候选键。
Fmin={AB→C,BC→D,D→E,D→G,C→A,BE→C,CG→D,CE→G}。求R的候选键?AB、BC、BD、BE问题:R(A,B,C,D,E,G),问题:R(A,B,C,D,E,G),Fmin={AB→C,BC→D,D→E,D→G,C→A,BE→C,CG→D,CE→G}。求R的候选键?
解:B为L类属性(仅出现在F中左部);A,B,C,D,E,G为LR类属性(在F的左部、右部均出现)B+=B,AB+=ABCDEG,BC+=ABCDEG,BD+=ABCDEGBE+=ABCDEG,BG+=BG故R的候选键为AB,BC,BD,BE.5.4关系模式规范形式5.4.1第一范式(1NF)
定义5.11设R是一个关系模式。如果R的每个属性的值域都是不可分的简单数据项(原子)的集合, 称这个关系模式属于第一范式(firstnormalform),简记作R∈1NF。
不满足1NF的关系称为非规范化的关系,满足1NF的关系称为规范化的关系。在任何一个关系数据库系统中,关系至少应该是第一范式。不满足第一范式的数据库模式不能称为关系数据库。【例】如表5.2描述的是学生选课的情况。
表5.2学生选课关系
表5.2描述的学生选课关系不是1NF,因为课程一列包含多门课,不是原子值。而表5.3所示学生选课1关系是1NF。
表5.3学生选课1关系5.4.2第二范式(2NF)
定义5.12若关系模式R是1NF,而且每一个非主属性都完全函数依赖于R的候选键,则R称为第二范式,记作R∈2NF。
例:学生-宿舍-课程关系模式SLC(SNO,SD,SL,CNO,G)为第几范式?SC(SNO,CNO,G)为第几范式?SDL(SNO,SD,SL)为第几范式?2NF存在的问题?
5.4.3第三范式(3NF)定义5.13如果关系模式R是2NF,而且它的任何一个非主属性都不传递地依赖于任何候选键,则R称为第三范式,记作R∈3NF。SC(SNO,CNO,G)为第几范式?SDL(SNO,SD,SL)为第几范式?5.4.4Boyce-Codd范式(BCNF)定义5.14设关系模式R是1NF。如果对于R的每个函数依赖X→Y,X必为候选键,则R是BCNF。例1:考试成绩关系EXAM(S,J,P)为第几范式?S—学生名,J—课程名,P—名次(无同名次的)。例2:学习课程关系STJ(S,J,T)为第几范式?S—学生名,J—课程名,T—教师(每个教师只教一门课)。
例1:考试成绩关系EXAM(S,J,P)为第几范式?S—学生名,J—课程名,P—名次(无同名次的)。BCNF(S,J)->P,(J,P)->S例2:学习课程关系STJ(S,J,T)为第几范式?S—学生名,J—课程名,T—教师(每个教师只教一门课)。3NF(S,J)->T,(S,T)->J,T->J根据BCNF的定义可得,属于BCNF的关系模式都具有如下三个性质:
(1)所有非主属性都完全函数依赖于每个候选键;
(2)所有主属性都完全函数依赖于每个不包含它的候选键;
(3)没有任何属性完全函数依赖于非候选键的任何一组属性。问题1:供应关系SSP(SNO,SNAME,PNO,QTY)在SNAME无重名时为第几范式?在SNAME有重名时为第几范式?问题2:SC(SNO,CNO,G)为第几范式?问题3:S(SNO,SNAME,SDEP,SAGE,ADDR)为第几范式?问题1:供应关系SSP(SNO,SNAME,PNO,QTY)在SNAME无重名时为第几范式?(SNO,PNO),(SNAME,PNO)3NF在SNAME有重名时为第几范式?(SNO,PNO)1NF问题2:SC(SNO,CNO,G)为第几范式?BCNF问题3:S(SNO,SNAME,SDEP,SAGE,ADDR)为第几范式?无论有否重名,均为BCNF5.5关系模式的规范化关系分为两类:
(1)静态关系:一旦加载数据后,用户只能在这个关系上运行查询操作。这种关系的要求是必须属于1NF。
(2)动态关系:当数据加载后,经常对数据进行增、删、改操作。这种关系的要求是至少属于3NF。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。5.5.1关系模式规范化的步骤关系模式规范化的基本步骤
1NF ↓消除非主属性对码的部分函数依赖消除决定属性 2NF集非码的非平 ↓消除非主属性对码的传递函数依赖凡函数依赖3NF ↓消除主属性对码的部分和传递函数依赖
BCNF ↓消除非平凡且非函数依赖的多值依赖
4NF关系模式规范化的步骤(续)规范化的基本思想 逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”, 采用“一事一地”的模式设计原则,让一个关系描述一个概念、一个实体或者实体间的一种联系。若多于一个概念就把它“分离”出去。规范化实质上是概念的单一化。关系模式规范化的步骤(续)不能说规范化程度越高的关系模式就越好。在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式。分解可能带来的问题?
分解后的多个模式是否与原来的模式完全一样呢? 分解后所表达的函数依赖集是否与原来的函数依赖集等价呢?关系模式分解原则:分解后产生的模式应与原模式等价。
仅当下述三种情况之一,才能保证分解后产生的模式与原模式等价:
(1)分解具有“无损连接性”;
(2)分解具有“保持函数依赖性”;
(3)分解既要“保持函数依赖性”,又要具有“无损连接性”。5.5.2具有无损连接性的关系模式分解
1.分解ρ具有无损连接性设关系模式R(U),F是R上的函数依赖集合,ρ={R1,R2,…,Rn}是R的一个分解,如果对R的任一满足F的关系r下式成立:则称分解ρ为具有无损连接性或分解ρ为无损连接分解。
无损连接分解的特性:
关系模式分解后所表示的信息应与原模式等价,即分解后的多个关系再连接得到的新关系不能“丢失”信息,也不能多出一些信息。
实际上,连接后的关系不会少了任何元组,而是可能多出一些元组。
例:SPJ分成SP,PJ后再SPPJ?SPJSNOPNOJNOS1P1J2S1P2J1S2P1J1S1P1J12.判定一个分解的无损连接性算法算法5.3判定一个分解的无损连接性算法。输入:关系模式R(A1,A2,…,An),R上的分解ρ={R1,R2,…,Rn},R上的函数依赖集为F。输出:分解ρ是否具有无损连接性。
方法:
(1)构造一个k行n列的初始表,第i行对应于关系模式Ri,第j列对应于属性Aj。如果Aj∈Ri,则在第i行第j列上填符号aj;否则填符号bij。
(2)逐个检查F中的每一个函数依赖X→Y,并修改表中的元素。 具体办法:从F中取一个X→Y,在X的分量中寻找相同符号的行,然后将这些行中的Y分量改为相同的符号。如果其中为一个aj,则将bij改为aj;否则,改为bmj(m为最小行号)。(3)反复进行(2), 如果发现某一行变成了a1,a2,…,an,则分解ρ具有无损连接性; 如果F中所有函数依赖都不能再修改表中的内容,且没有发现这样的行,则分解ρ不具有无损连接性。【例】已知关系模式R(U),U={A,B,C,D,E},R上的函数依赖集F={A→C,B→C,C→D,DE→C,CE→A},分解ρ={R1({A,D}),R2({A,B}),R3({B,E}),R4({C,D,E}),R5({A,E}),判定ρ是否具有无损连接性。解:(1)首先构造初始表(见表5.5)。
表5.5(2)检查A→C,因为R1[A]=R2[A]=R5[A]=a1,修改b13,b23,b53,使其均为b13。修改结果如表5.6。表5.6(3)检查B→C,因为R2[B]=R3[B]=a2,修改b13,b33,使其均为b13。修改结果如表5.7。
表5.7(4)检查C→D,因为R1[C]=R2[C]=R3[C]=R5[C]=b13,修改b24,b34,b54,使其均为a4。修改结果如表5.8。表5.8(5)检查DE→C,因为R3[DE]=R4[DE]=R5[DE]=a4a5,修改R3[C],R5[C],使其均为a3。修改结果如表5.9。
表5.9(6)检查CE→A,因为R3[CE]=R4[CE]=R5[CE]=a3a5,修改R3[A],R4[A],使其均为a1。修改结果如表5.10。第三行为a1a2a3a4a5,则ρ是具有无损连接性。表5.103、定理5.6设关系模式R的一个分解ρ={R1,R2}, U1、U2和U分别是R1、R2和R的属性集合,F是R上的函数依赖集。ρ具有无损连接性的充分必要条件是:
(R1∩R2)→(R1-R2)∈F+或(R1∩R2)→(R2-R1)∈F+即:(R1-R2)∈(R1∩R2)+或(R2-R1)∈(R1∩R2)+
例:R(A,B,C),F={A
→B,B→C},问:ρ1={R1(A,B),R2(B,C)};
ρ2={R1(A,C),R2(B,C)};
ρ3={R1(A,C),R2(A,B)};是否为无损连接分解?(R1-R2)∈(R1∩R2)+或(R2-R1)∈(R1∩R2)+
ρ1={R1(A,B),R2(B,C)};无损连接分解
ρ2={R1(A,C),R2(B,C)};有损连接分解
ρ3={R1(A,C),R2(A,B)};无损连接分解设关系模式R的属性集合为{A,B,C,D,E},其函数依赖集合为F={A→D,E→D,BC→D,DC→A,D→B},判断分解ρ={R1(A,B),R2(A,E),R3(C,E),R4(B,C,D),R5(A,C)}是否为无损连接分解?5.5.3保持函数依赖分解设关系模式R<U,F>被分解为若干个关系模式R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>(Fi为F在Ui上的投影),若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖Fi所逻辑蕴含,
F+=(F1UF2…UFN)+则称关系模式R的这个分解是保持函数依赖的分解。Fi为F在Ui上的投影
:π
Ui(F)=={X→Y|X→Y∈F+,且XY∈Ui}
分解为3NF,且具有函数依赖保持性的算法(5.5)。输入:关系模式R(U)和关系模式R的函数依赖F的极小依赖集Fmin;输出:R的一个分解ρ={R1,R2,…,Rn},Ri为3NF(i=1,2,…,n),ρ具有函数依赖保持性。方法:
(1)如果极小依赖集Fmin中有一个依赖X→A,且XA=U,则输出ρ={R},转向(5);
(2)如果R中某些属性与Fmin中所有函数依赖的左部和右部都无关,则将它们构成一个关系子模式Rj,并从R中将它们分出去。(3)对于Fmin中的每一个有相同左边的分在一个模式内,如X→Ai,则XAi构成一个子模式(i=1,2,3…);
(4)对于Fmin中的每一个Xi→Ai,都构成一个关系子模式Ri=XiAi;
(5)停止分解,输出ρ。
【例】设关系模式R(U),其中U={C,T,H,R,S,G},R上的函数依赖集Fmin={CS→G,C→T,TH→R,HR→C,HS→R}。试将其保持函数依赖性分解为3NF。解: 因为(HS)+={C,T,H,R,S,G},所以HS是关系模式R的惟一候选键。根据Armstrong公理推论知HS→C,而Fmin中C→T(对侯选键部分依赖),又HS→C,C→T则HS→T,说明T传递依赖于候选键,所以该关系模式不满足3NF。利用算法5.5得:
R1=CSG,R2=CT,R3=THR,R4=HRC,R5=HSR
于是,求出的其保持函数依赖性分解ρ={R1,R2,R3,R4,R5}满足3NF。
算法5.6把一个关系模式分解为3NF,使它既具有无损连接性,又具有函数依赖保持性。输入:关系模式R和R的极小函数依赖集Fmin
,X是R的一个候选键。输出:R的一个分解ρ={R1,R2,…,Rn},Ri为3NF(i=1,2,…,n),且ρ具有无损连接性和函数依赖保持性。
方法:
(1)根据算法5.5求出函数依赖保持性分解:ρ={R1,R2,…,Rn};
(2)判定ρ是否具有无损连接性,若具有,转向(4);
(3)令ρ=ρ∪{X},其中,X是R的一个候选键;
(4)输出ρ。
(2)X∈Ri
具有无损连接性,转向(4);
【例】设关系模式R(U),其中U={C,T,H,R,S,G},R上的函数依赖集F={CS→G,C→T,TH→R,HR→C,HS→R}。试将其保持函数依赖且无损连接分解为3NF。解:1、因为(HS)+={C,T,H,R,S,G},所以HS是关系模式R的惟一候选键。2、利用算法5.5得:
R1=CSG,R2=CT,R3=THR,R4=HRC,R5=HSR3、HS∈R5
于是,求出的分解ρ={R1,R2,R3,R4,R5}满足3NF。且保持函数依赖和无损连接分解。如果一个分解具有无损连接性,则它能够保证不丢失信息。如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖。同样,保持函数依赖的分解也不一定具有无损连接性。规范化理论提供了一套完整的模式分解算法,按照这套算法可以做到:若要求分解具有无损连接性,那么模式分解一定能够达到4NF。若要求分解保持函数依赖,那么模式分解一定能够达到3NF,但不一定能够达到BCNF。若要求分解既具有无损连接性,又保持函数依赖,则模式分解一定能够达到3NF,但不一定能够达到BCNF。小结一、函数依赖函数依赖平凡函数依赖与非平凡函数依赖完全函数依赖与部分函数依赖(2NF)传递函数依赖(3NF)码(决定因素包含码BCNF)规范化理论为数据库设计提供了理论的指南和工具并不是规范化程度越高(范式越高),模式就越好必须结合应用环境和现实世界的具体情况合理地选择数据库模式习题51.什么是Armstrong公理系统?试证Armstrong公理系统是正确的和完备的。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州城市职业学院《英美文学鉴赏与批评》2023-2024学年第一学期期末试卷
- 贵州电力职业技术学院《高级日语2》2023-2024学年第一学期期末试卷
- 2025上海建筑安全员-B证考试题库附答案
- 贵阳人文科技学院《中医基础》2023-2024学年第一学期期末试卷
- 广州珠江职业技术学院《食品安全与卫生实验》2023-2024学年第一学期期末试卷
- 2025天津市建筑安全员A证考试题库及答案
- 新建100亩冬暖式日光温室蔬菜基地建设项目可行性研究报告
- 2025天津市安全员A证考试题库
- 2025吉林省安全员《B证》考试题库及答案
- 2025陕西省建筑安全员-A证考试题库及答案
- 2025年度商用厨房油烟机安装与维护服务合同范本3篇
- 2024年03月恒丰银行2024年春季招考毕业生笔试历年参考题库附带答案详解
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之14:“6策划-6.3变更的策划”(雷泽佳编制-2025B0)
- 2024年特厚板行业现状分析:中国特厚板市场占总销售量45.01%
- 2025年中国地质调查局乌鲁木齐自然资源综合调查中心招聘19人历年管理单位笔试遴选500模拟题附带答案详解
- 2024版影视制作公司与演员经纪公司合作协议3篇
- 2024年上海市初三语文二模试题汇编之记叙文阅读
- 2024年度上海市嘉定区工业厂房买卖合同2篇
- 2023-2024学年广东省广州市海珠区九年级(上)期末化学试卷(含答案)
- SAP WM模块前台操作详解(S4版本)
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
评论
0/150
提交评论