版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1971E.F.Codd
提出
1NF2NF3NFBCNF4NF5NF
第四章关系规范化理论规范化函数依赖模式分解14.1问题的提出关系模式
R(U,D,dom,I,F)
数据依赖:关系中属性间互相依存、互相制约的关系。
[函数依赖、多值依赖、连接依赖、分层依赖和相互依赖]2例:U={学号,系部,系主任,课程名称,成绩}F={学号→系部,系部→系主任,(学号,课程名称)→成绩}系部系主任成绩
学号课程名称3缺点1、冗余太大2、操作异常
1)插入异常
2)删除异常
3)修改异常
学号系部系主任
课程名称成绩02101CSXAAA02101CSXBBB02101CSXCCA02102MAMAAB02102MAMDDA02103MAMEEC02104ISJEEB02105ISJBBA4通过适当地进行模式分解可以避免上述问题:1、冗余太大2、操作异常
1)插入异常
2)删除异常
3)修改异常学生(学号,系部)系部(系部,系主任)选课(学号,课程名称,成绩)原模式分解为三个子模式5适当地进行模式分解关系规范化理论即适当地进行模式分解的理论,包括:
4.2函数依赖和范式理论
4.3ArmStrong公理系统
4.4模式分解的方法64.2函数依赖和范式理论范式理论的目的和内容:1)定义范式级别:衡量模式的规范化程度,即模式的数据冗余和操作异常程度。2)范式的判定:通过分析模式中的数据依赖关系,判断关系模式的范式级别。3)函数依赖:是最基本的数据依赖关系,是属性或者属性组间存在的依赖。7定义和判定范式级别
——利用函数依赖一、定义函数依赖的概念二、基于函数依赖来重新定义候选码三、几种级别的范式及其判定8一、定义函数依赖函数依赖:类比于数学函数f:X→Y定义4.1:设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,当且仅当r中任意一个给定的X的值,r中存在唯一的Y值与之对应。则称Y函数依赖与X,或者X函数确定Y,记作X→Y。回忆:映射,单射、满射、双射、函数9定义4.3:R(U)的属性子集X,Y之间的函数依赖用X→Y表示,它在构成关系R的任意元组r上指定了一个约束。这个约束是:如果对于r中的任何两个元组t1和t2有t1[X]=t2[X],则必须也有t1[Y]=t2[Y]。
定义4.2:设R(U)是属性集U上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X→Y。一、定义函数依赖10例如:U={学号,系部,系主任,课程名称,成绩}F={学号→系部,系部→系主任,(学号,课程名称)→成绩}注意:函数依赖,不是指关系模式R的某个或某些关系满足的条件,而是指R的一切关系均要满足的约束条件11由函数依赖导出的概念:
1.决定因素:若X→Y,则X叫做决定因素
2.互相依赖:若X→Y,Y→X,则记作X←→Y。
3.若Y不函数依赖于X,则记作XY。→一、定义函数依赖12
定义4.4:平凡(非平凡)函数依赖 在R(U)中,一个函数依赖X→Y,如果满足YX,则称此函数依赖是非平凡函数依赖,否则称为平凡函数依赖。
一、定义函数依赖几种类型的函数依赖:13
定义4.5
:完全函数依赖在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’→Y,则称Y对X完全函数依赖。记作:FXY
定义4.6:部分函数依赖
在R(U)中,如果X→Y,存在真子集X’,有X’→Y成立,则称Y对X部分函数依赖。记作:PXY几种类型的函数依赖:14定义4.7:传递函数依赖
在R(U)中,如果对于非平凡函数依赖X→Y,有Y→X,且Y→Z,则称:Z对X传递函数依赖。几种类型的函数依赖:15完全函数依赖传递函数依赖部分函数依赖系部系主任成绩
学号课程名称几种类型的函数依赖:16二、利用函数依赖定义候选码定义4.8:设K为R(U,F)中的属性或属性组,若,则K为R的候选码。FKU主码主属性:包含在任何码中的属性。非主属性:不包含在任何码中的属性。全码外码主码与外码提供了一个表示关系间联系的手段17三、几种级别的范式第一范式(1NF)定义4.9:满足关系的每一个分量都是不可分的数据项的关系模式就属于第一范式(1NF)。缺点: 插入异常、删除异常、冗余太大、修改复杂18
学号系部系主任
课程名称成绩99101CSXAAA99101CSXBBB99101CSXCCA99102MAMAAB99102MAMDDA99103MAMEEC99104ISJEEB99105ISJBBA第一范式(1NF)关系的每一个分量都是不可分的数据项缺点: 插入异常 删除异常 冗余太大 修改复杂19第二范式(2NF)定义4.10:若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。系部系主任成绩
学号课程名称存在部分函数依赖20成绩系部系主任
R1(学号,系部,系主任)
学号
学号课程名称
R2(学号,课程名称,成绩)模式分解,消除部分函数依赖模式分解后的子模式:21第三范式(3NF)定义4.11:关系模式R(U,F)中若不存在这样的码X,属性组Y及非主属性组Z(ZY)使得X→Y,(Y→X)Y→Z成立,则称R(U,F)∈3NF。3NF需要消除掉了部分和传递依赖。若R∈2NF,且每一个非主属性不传递依赖于码,则R∈3NF。系部系主任
学号22编号成员负责人项目名称任务情况职务例如:项目(编号,项目名称,负责人,职务,成员,任务情况)(假设:负责人无重名情况)23任务(编号,成员,任务情况)项目(编号,项目名称,负责人,职务)根据2NF要求编号成员任务情况编号负责人项目名称职务任务项目24编号成员任务情况任务编号负责人项目名称项目负责人职务负责人职务根据3NF要求25例如:分析以下关系属第几范式学生学习情况:
R(学号,姓名,班级,年龄,宿舍,系部,系主任,课程号,课程名,先修课程,成绩)26学号课程号学号课程号姓名成绩先修课程课程名系主任系部宿舍年龄班级分析函数依赖关系:判断:属于1NF分析:关键字:27成绩学号+课程号姓名系部宿舍年龄班级学号系主任系部先修课程课程名课程号3NF分解:28问题:设有关系模式R(A,B,C,D),其数据依赖集:F={(A,B)→C,C→D},则关系模式R的规范化程度最高达到()。
29BCNF(扩充的3NF)定义:关系模式R(U,F)∈1NF。若X→Y且YX时X必含有码,则R(U,F)∈BCNF。即:关系模式R(U,F)中,若每一个决定因素都包含码,则R(U,F)∈BCNF。三、几种级别的范式30所有非主属性对每一个码都是完全函数依赖。所有主属性对每一个不包含它的码也是完全函数依赖。没有任何属性完全函数依赖于非码的任何一组属性。满足BCNF的关系模式的性质:31例如:关系模式SJP(S,J,P)S:学生[学生选修课程有一定的名次]J:课程[每门课程中每一名次只有一个学生]P:名次(名次没有并列)函数依赖:(S,J)→P(J,P)→S
分析得知:SJP∈3NFSJP∈BCNF32例如:关系模式STJ(S,T,J)S:学生[某一学生选定某门课,就对应一个固定教师]T:教师[每个教师只教一门课]J:课程
[每门课有若干教师]
函数依赖:(S,J)→T(S,T)→J分析得知:STJ∈3NF但是STJ∈BCNF,因为
T→JSTJ可以分解为:ST(S,T)和TJ(T,J)33消除非主属性对码的部分函数依赖消除非主属性对码的传递函数依赖消除主属性对码的部分和传递函数依赖1NF2NF3NFBCNF消除决定因素非码的非平凡函数依赖小结:34小测验指出下列关系模式属第几范式,并说明理由。(1)R(X,Y,Z)F={XY→Z}(2)R(X,Y,Z)F={Y→Z,XZ→Y}(3)R(X,Y,Z)F={Y→Z,Y→X,X→YZ}35假设某旅馆业务规定,每个账单对应一个顾客,账单的发票号是惟一的,账单中包含一个顾客姓名、到达日期和顾客每日的消费明细,账单的格式如图所示:试回答下列问题:
(1)找出R的候选键。
(2)判断R最高可达到第几范式,为什么?36配件管理模式WPE(WNO,PNO,ENO,QNT)分别表示仓库号,配件号,职工号,数量。有以下条件a.一个仓库有多个职工。b.一个职工仅在一个仓库工作。c.每个仓库里一种型号的配件由专人负责,但一个人可以管理几种配件。d.同一种型号的配件可以分放在几个仓库中。1.ENO→WNO2.WNO,PNO→ENO3.WNO,PNO→QNT候选码1.(WNO,PNO)为候选码2.因为ENO,PNO→WNO
所以(ENO,PNO)为候选码37内容回顾规范化的提出函数依赖码(候选码、主码、外码、
主属性、非主属性)范式(1NF~BCNF)一个事实:函数依赖存在冗余,一个函数依赖或许可以从其他依赖导出。38一个事实:函数依赖存在冗余,一个函数依赖或许可以从其他依赖导出。例如:关系模式R(U,F)其中U(A,B,C,D,E,F,G)F(A→B,C→D,AB→E,F→G)则函数依赖A→E可以从F中导出4.3Armstrong公理系统39定义4.15
逻辑蕴含
对于R(U,F),如果X→Y不在F中,但是对于其任何一个关系r,X→Y都成立,则称F逻辑蕴含X→Y。
[或者说:X→Y可以由F导出]例:关系模式R(U,F)其中U(A,B,C,D,E,F,G)F(A→B,C→D,AB→E,F→G)问:F是否逻辑蕴含A→E40函数依赖间的蕴含关系的推理规则的理论系统,包括:1)三个基本公理2)三个扩展的推理规则4.3.1Armstrong公理系统41对于关系模式R(U,F),有公理1:自反律(Reflexivity)
若YXU,则X→Y为F所蕴含。公理2:增广律(Augmenttation)
若X→Y为F所蕴含,且ZU,则XZ→YZ为F所蕴含。公理3:传递律(Transitivity)
若X→Y,Y→Z为F所蕴含,则X→Z为F所蕴含。三条基本公理:自反律、增广律、传递律42公理4:合并规则由X→Y,X→Z,有X→YZ。公理5:伪传递规则由X→Y,WY→Z,有XW→Z公理6:分解规则由X→Y及ZY,有X→Z。由基本公理导出的三条推理规则:43例:关系模式R(U,F)其中U(A,B,C,D,E,F,G)F(A→B,C→D,AB→E,F→G)问:F是否逻辑蕴含A→E解:
∵
A→B(已知)
∴
A→AB(增广率)∵
AB→E(已知)∴
A→E(传递率)44定义4.16
函数依赖集F的闭包 在关系模式R(U,F)中,函数依赖集F及F所逻辑蕴含的函数依赖的全体叫做F的闭包,记为F+。4.3.2函数依赖集和属性集的闭包F+={X→Y|F及能由F根据Armstrong公理导出}45 设R(U,F),F为属性集U上的一组函数依赖,属性集XU,则X关于F的闭包定义为XF+
:
XF+={A|X→A能由F根据
Armstrong公理导出}
。定义4.17:X关于F的闭包46【例如】设关系模式R(A、B、C)的函数依赖集为F={A→B,B→C},分别求A、B、C的闭包。若X=A,∵A→B,B→C(已知)∴A→C(传递律)∵A→A(自反律)∴XF+={A,B,C}若X=B,∵B→B
B→C∴XF+={B,C}若X=C,∵C→C∴XF+={C}47定理4.2:设F为属性集U上的一组函数依赖关系,X,YU,X→Y能由F根据Armstrong公理导出的充分必要条件是YXF+。利用XF+可以判定: 函数依赖X→Y是否为F所蕴含如何求得XF+呢?48求XF+的算法:输入:X,F输出:XF+(1)令X(0)=X,i=0(2)求B,B={A|(V)(W) (V→W∈FVX(i)
A∈W)}(3)X(i+1)=B∪X(i)(4)判断X(i+1)=X(i)吗?(5)若相等或X(i)=U则X(i)就是XF+
,算法终止。(6)若否,则i=i+1,返回第(2)步。算法4.1:49例1:已知关系模式R(U,F),其中U={A,B,C,D,E};F={AB→C,B→D,C→E,EC→B,AC→B}求(AB)F+。解:1:X(0)=AB2:计算X(1)=X(0)∪C∪D=ABCD3:求X(2)=X(1)∪E∪B=ABCDE4:由于X(2)
已经等于全部属性集合,所以(AB)F+=ABCDE找出左部为A,B或AB的函数依赖50例2:已知关系模式R(U,F),其中U={A,B,C,D,E,F,G,H};F={A→D,AB→E,BH→E,CD→H,E→C}令X=AE,求X+。解:1:X(0)=AE2:X(1)=X(0)∪D∪C=ACDE3:X(2)=X(1)∪D∪H∪C=ACDEH4:X(3)=ACDEH不变,即X(3)=X(2)
所以X+=(AE)+=ACDEH51对于属性闭包算法的终止条件,下列四种方法是等价的:
1X(i+1)=X(i)2当发现X(i)
包含了全部属性时;
3在F中的函数依赖的右部属性中,再也找不到X(i)
中未出现过的属性。
4在F中未用过的函数依赖的左部属性中已没有X(i)
的子集。52定理:Armstrong公理系统是有效的(正确性)、完备的。正确性:指公理1、2、3是正确的。有效性:指由F出发根据Armstrong公理推导出来的每一个函数依赖一定在F+。完备性:指F+中的每一个函数依赖,必定可以由F出发根据Armstrong公理推导出来。534.3.3函数依赖集的等价和
最小函数依赖集定义4.18
如果G+=F+,则称F与G等价,记为F=G。F+=G+的充分必要条件是FG+且GF+54例:R(U)U=ABCF={A→B,B→C,A→C,AB→C,A→BC}可以写成:G={A→B,B→C}证明:1:A→B,B→C传递规则A→C2:A→B,扩展AB→BB即AB→B再由B→C所以AB→C3:A→B,B→C扩展B→BC所以A→BCF与G等价55定义4.19:最小依赖集定义:如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集,也称最小依赖集或最小覆盖。1)F中任一函数依赖的右部仅含有一个属性。2)F中不存在这样的函数依赖X→A,使得
F与F-{X→A}等价。[不存在冗余FD]3)F中不存在这样的函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。[决定因素不存在冗余]56例:U={SNO,SDEPT,MN,CNAME,G}F={SNO→SDEPT,SDEPT→MN,{SNO,CNAME}→G}
设F’={SNO→SDEPT,SNO→MN,SDEPT→MN,(SNO,CNAME)→G,(SNO,SDEPT)→SDEPT}结论:
F与F’等价
F是最小覆盖,F’不是。57算法4.2求Fm(F的最小依赖集)的算法(1)将X→A1A2…Ak(k>2)转换为X→Ai(i=1,2,…,k)
[将右部属性分解为单个属性](2)逐个检查函数依赖X→A,令G=F-{X→A},若A∈(X)G+,则从F中去掉X→A。[逐个检查F中的每一项,看是否F-{X→A}与F等价](3)逐个检查函数依赖X→A,若X=B1B2…Bm,逐个考查Bi(i=1,2,…,m),若A∈(X-Bi)F+,则以X-Bi取代X。[判每个函数依赖左部是否有冗余属性]58例:将下列函数依赖集F划为最小函数依赖集。F={A→B,B→A,B→C,A→C,C→A}解:1:分解为单个属性F1=F2:消去F中冗余的函数依赖考察A→B:令X=A求X+=?X(0)=AX(1)=AC=X+
因为B不属于X+
所以A→B不冗余。考察B→A:令X=B求X+=?
X(0)=BX(1)=BCX(2)=ABC=X+
因为A属于X+
所以B→A冗余。考察B→C:令X=B求X+=?
X(0)=BX(1)=B=X+
因为C不属于X+
所以B→C不冗余。59考察A→C:令X=A求X+=?
X(0)=AX(1)=ABX(2)=ABC=X+
因为C属于X+
所以A→C冗余。考察C→A:令X=C求X+=?
因为A不属于X+
所以C→A不冗余。因此3:判每个函数依赖左部是否有冗余属性F={A→B,B→A,B→C,A→C,C→A}Fm={A→B,B→A,A→C,C→A}思考F2={A→B,B→C,C→A}60设有关系模式R(A,B,C,D),其上的函数依赖集为:F={A→C,C→A,B→AC,D→AC},求F的最小覆盖。
61假定我们要构造一个数据库,属性集为{A,B,C,D,E,F,G},给定的函数依赖集F如下:
F={BCD→A,BC→E,A→F,F→G,C→D,A→G}.
找出这个函数依赖集的最小覆盖G624.4关系模式的分解
模式分解等价性的三个判定准则分解的无损连接性和函数依赖保持性模式分解的算法63T#TDDHT#TDDHT1T2T3T4D1D1D2D3AAAABBCC设一关系模式R(T#,TD,DH),其中T#表示教师编号,TD表示教师所属系部,DH表示系主任名。假定每位教师只能在一个系任教,每个系只有一位系主任。64分解1:
ρ1={R1(T#),R2(TD),R3(DH)}分解2:
ρ2={R1(T#,TD),R2(T#,DH)}分解3:
ρ3={R1(T#,TD),R2(TD,DH)}分析:这三种分解那一个最好?65分解1:T#T1T2T3T4R1R2TDD1D2D3R3DHAABBCC问题:T1是哪一个系的教师?无法回答。R1,R2,R3也无法恢复到原来的R。66分解2:T#T1T2T3T4R1TDD1D1D2D3T#T1T2T3T4R2DHAAAABBCC此时,R1,R2的分解是可恢复的,但仍然存在操作异常。原因:TD→DH在R1,R2中没有体现。67分解3:T#T1T2T3T4R1TDD1D1D2D3TDR2DHD1D2D3AABBCC此时,R1,R2的分解是可恢复的,并且消除了操作异常。68
关系模式R被分解为两个投影R1和R2是独立的,当且仅当:
1.R中的每个函数依赖都可由R1和R2的函数依赖导出。
2.R1和R2中的公共属性至少是R1和R2
中某个关系的侯选码。独立投影法则694.4.1无损连接和函数依赖保持一、分解的无损连接性:
如果一个关系模式分解后,可以通过自然连接恢复原模式的信息,这一特性称为分解的无损连接性。70分解的无损连接性:设R是关系模式,F是R上的函数依赖集,则R的分解δ={R1,…,Rk}是无损连接的,如果R中每个满足F的关系r都有下式成立:⋈⋈…⋈71Tij=aj,如果Aj∈Ribij,如果Aj∈Ri1)构造一个k行n列的二维表T:每列对应一个属性Aj
每行对应一个模式Ri
ρ={R1(U1,F1),…,Rk(Uk,Fk)}是R(U,F)的一个分解,U={A1,…,An},F={FD1,FD2,…,FDp}。算法4.3
判定分解的无损连接性722)根据F中函数依赖修改表T的内容。修改规则:逐个考察F中的每个函数依赖FD:X→Y,找到表格中在X属性上取值相等的行,将在这些行上的Y属性取值改为相等,具体如下:
(1)如果其中有一个符号为aj,则把其它符号也改为aj,否则改为bmj,其中m是这些行的最小行号。(2)特别注意:修改过程中若某个bij被改动,则它所在列的所有bij都要做相应改动733)如果发现表中有一行已变成a1a2…ak,则表示该分解具有无损连接性,否则分解不是无损连接的。例:已知R(U,F)U={A,B,C,D,E,F},F={AB→C,C→D,A→F,D→E,D→F}
R的一个分解为:
ρ={R1(A,B,C),R2(C,D),R3(D,E,F)}
判断ρ是否具有无损连接性。74ABCDEFa1b21b31a2b22b32a3a3b33b14a4a4b15b25a5b16b26a6第一步:建Tρ={R1(A,B,C)R2(C,D)R3(D,E,F)}Tij=aj,如果Aj∈Ribij,如果Aj∈Ri75
第二步:逐个考察函数依赖,并修改表。(1)AB→C,(2)C→D,(3)A→F,(4)D→E,(5)D→F因此,该分解具有无损连接性。a4a5a5ABCDEFa1b21b31a2b22b32a3a3b33a4a4a5a6b14b16b15b25b26a6a6由于没有相同的分量,所以表不改变76
ρ1={R1(T#),R2(TD),R3(DH)}ρ2={R1(T#,TD),R2(T#,DH)}ρ3={R1(T#,TD),R2(TD,DH)}ρ1T#TDDHa1b12b13
b21a2b23
b31b32a3具有无损连接性ρ2T#TDDHa1a2b13
a1b22a3
ρ3T#TDDHa1a2b13
b21a2a3具有无损连接性77练习设关系模式R为R(H,I,J,K,L),R上的一个函数依赖集为F={H→J,J→K,I→J,JL→H},判断如下哪个分解是无损连接的。
p={HK,HI,IJ,JKL,HL}p={HIL,IKL,IJL}p={HJ,IK,HL}p={HI,JK,HL}78HIJKLHKa1b12b13a4b15HIa1a2b23b24b25IJb31a2a3b34b35JKLb41b42a3a4a5HLa1b52b53b54a5A.p={HK,HI,IJ,JKL,HL}建表:79HIJKLHKa1b12b13a4b15HIa1a2b13b24b25IJb31a2a3b34b35JKLb41b42a3a4a5HLa1b52b13b54a5F={H→J,J→K,I→J,JL→H}修改表:80HIJKLHKa1b12b13a4b15HIa1a2b13a4b25IJb31a2a3a4b35JKLb41b42a3a4a5HLa1b52b13a4a5F={H→J,J→K,I→J,JL→H}修改表:81HIJKLHKa1b12a3a4b15HIa1a2a3a4b25IJb31a2a3a4b35JKLb41b42a3a4a5HLa1b52a3a4a5F={H→J,J→K,I→J,JL→H}修改表:82HIJKLHKa1b12a3a4b15HIa1a2a3a4b25IJb31a2a3a4b35JKLa1b42a3a4a5HLa1b52a3a4a5F={H→J,J→K,I→J,JL→H}修改表:83HIJKLHKa1b12a3a4b15HIa1a2a3a4b25IJb31a2a3a4b35JKLa1b42a3a4a5HLa1b52a3a4a5F={H→J,J→K,I→J,JL→H}修改表:陷入循环,结束非无损84HIJKLHILa1b12b13a4b15IKLa1a2b23b24b25IJLb31a2a3b34b35B.p={HIL,IKL,IJL}F={H→J,J→K,I→J,JL→H}建表:85HIJKLHILa1a2a3b14a5IKLa1a2a3a4a5IJLa1a2a3b34a5B.p={HIL,IKL,IJL}F={H→J,J→K,I→J,JL→H}修改表:无损连接分解。86设ρ={R1,R2}是关系模式R的一个分解,F是R的一个函数依赖集,则对于F,ρ具有连接不失真性的充分必要条件是:
R1∩R2→R1-R2∈F+
或R1∩R2→R2-R1∈F+。定理4.4:
R1和R2中的公共属性至少是R1和R2中某个关系的侯选码。87二、分解的函数依赖保持性:
若关系R(U,F)的一个分解ρ={R1(U1,F1),…,Rk(Uk,Fk)}的所有函数依赖的并集逻辑蕴涵了F中所有函数依赖,即=F+,
则称分解ρ具有函数依赖保持性。i=1k(∪Fi)i=1k(∪Fi)+88二、分解的函数依赖保持性问题:给定关系R(U,F),及其分解:ρ={R1(U1,F1),…,Rk(Uk,Fk)}如何计算Fi:称为F在Ui上的投影
Fi={X→Y|X→Y∈F+∧XY⊆Ui};或与其等价的依赖集89例:关系模式R(U,F)U={A,B,C,D}F={A→B,B→C,C→D,D→A}分解ρ={R1(A,B),R2(B,C),R3(C,D)}是否具有函数依赖保持性?其中:
F1=πU1(F)=(A→B,B→A)F2=πU2(F)=(B→C,C→B)F3=πU3(F)=(C→D,D→C)判断分解是否具有函数依赖保持性的方法90
F1∪F2∪F3={A→B,B→A,B→C,C→B,C→D,D→C}F={A→B,B→C,C→D,D→A}因为(F1∪F2∪F3)+=F+
所以分解ρ具有函数依赖保持性。判断分解是否具有函数依赖保持性的方法91练习设有R(U,F),其中,U={A,B,C,D,F},F={A→C,B→C,C→D,DF→C,CF→A},R的一个分解为:R1=AB,R2=AD,R3=AF,R4=BF,R5=CDF,判断该分解是否具有函数依赖保持性。
92算法4.5:
结果为3NF的依赖保持分解算法4.4.2模式分解算法⑴如果R中有某些属性与F的最小覆盖F′中的每个依赖的左边和右边都无关,原则上可由这些属性构成一个关系模式,并从R中将它们消除;否则,⑵如果F′中有一个依赖涉及到R的所有属性,则输出R;否则,⑶输出一个分解ρ,它由模式XA组成,其中X→A∈F′
。但当X→A1,X→A2,…,X→An均属于F′时,则用模式XA1A2…An代替XAi(i=1,2,…,n)。93假定我们要够造一个数据库,属性集为{A,B,C,D,E,F,G},给定的函数依赖集F如下:
F={BCD→A,BC→E,A→F,F→G,C→D,A→G}.
求R的一个满足3NF的函数依赖保持分解举例94举例
1求F的最小覆盖
Fm={BC→AE,A→F,F→G,C→D}
2条件(1)不满足
3条件(2)不满足
4根据条件(3)输出ρ
ρ={BCAE,AF,FG,CD}95算法4.6:
结果为3NF的依赖保持和连接不失真分解
设δ是由“结果为3NF的依赖保持分解算法”得到的3NF分解,X为R的一个候选关键字,则:τ=δ∪{X}是R的一个分解,且其中的所有关系模式均满足3NF,同时,既具有连接不失真性,又具有依赖保持性。问题:如何找到候选码?——码值理论96对于给定的关系R(A1,A2,……,An)和函数依赖集F,可将其属性分为4类:
L类仅出现在F的函数依赖左部的属性
R类仅出现在F的函数依赖右部的属性
N类在F的函数依赖左右两边均未出现的属性
LR类在F的函数依赖左右两边均出现的属性码值理论97定理1
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必是R的候选码的成员。定理3
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是R类属性,则X不在任何候选码中。定理2
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是N类属性,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园安全工作总结及改进措施
- 企业主要负责人安全培训试题(预热题)
- 铁路运输事故应急池施工方案
- 电力低压安全生产
- 幼儿园新教师工作总结与家长沟通技巧
- 大型游泳赛事安全保障制度
- 公共交通卫生事件应对方案
- 工作总结与计划撰写培训
- 精神健康安宁疗护方案
- 工业设备拆除与改造施工方案
- 航空餐饮服务课件
- 保洁服务投标方案(技术方案)
- 基于数据的医疗质量管理策略
- C-TPAT 供应商安全评估表
- 医疗卫生机构安全生产标准化文件汇编
- 全国职业院校技能大赛(航空服务赛项)备赛试题库(汇总)
- JGT368-2012钢筋桁架楼承板规范
- 装配式围档施工方案
- 浙教版劳动教育六年级上册项目三 任务一《班级生活共观察》教学课件
- 小学信息技术-声控的秘密教学设计学情分析教材分析课后反思
- 课程名称耳应用解剖学
评论
0/150
提交评论