模式的分解
关系模式分解例题
关系模式分解例题
例1:
现有如下关系模式:R(教师号,姓名,部门号,部门名称,科研项⽬编号,项⽬名称,项⽬经费,担任⼯作,完成时间)每名教师可以参加多项科研项⽬,每个项⽬可以有多名教师参加,教师参加科研⼯作包括担任⼯作及他完成所担任部分的完成时间。 (1)根据上述条件,写出关系模式R的关键码。 (2)R最⾼属于第⼏范式,为什么? (3)将R规范到3NF。
由关系模式可以得出(⾁眼凭经验看出):
候选码:(教师号,部门号,科研项⽬编号)
(教师号)→(姓名)
(部门号)→(部门名称)
(科研项⽬编号)→项⽬名称
(科研项⽬编号)→项⽬经费
由题⽬描述可以得出:
(教师号,科研项⽬编号)→(担任⼯作)
(教师号,科研项⽬编号)→(完成时间)
(1)⾁眼看出候选码就是(教师号,部门号,科研项⽬编号)
(2)第⼀范式,存在姓名依赖于教师号,⽽担任⼯作依赖于教师号和科研项⽬编号,这是个⾮主属性对码的部分函数依赖
(3)
教师(教师号,姓名)
部门(部门号,部门名称)
科研项⽬(科研项⽬编号,项⽬名称,项⽬经费)
教师科研情况(教师号,科研项⽬编号,担任⼯作,完成时间)
例2:
现有关系模式如下:
借阅(图书编号,书名,作者名,出版社,读者编号,读者姓名,借阅⽇期,归还⽇期)
(1)读者编号是候选码吗请说明理由。
(2)写出该关系模式的主码。
(3)该关系模式中是否存在部分函数依赖如果存在,请写出两个。
(4)该关系模式最⾼满⾜第⼏范式并说明理由。
(5)如何分解该关系模式,使得分解后的关系模式均满⾜第三范式(3NF)
由关系模式可以得出:
候选码:(图书编号,读者编号,借阅⽇期)
模式分解
最佳答案
第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。例:如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话和一个家里电话号码)规范成为1NF有三种方法:
一是重复存储职工号和姓名。这样,关键字只能是电话号码。
二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性
三是职工号为关键字,但强制每条记录只能有一个电话号码。
以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。
第二范式(2NF):如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R 是属于第二范式的。
例:选课关系SCI(SNO,CNO,GRADE,CREDIT)其中SNO为学号,CNO为课程号,GRADEGE 为成绩,CREDIT 为学分。由以上条件,关键字为组合关键字(SNO,CNO)
在应用中使用以上关系模式有以下问题:
a.数据冗余,假设同一门课由40个学生选修,学分就重复40次。
b.更新异常,若调整了某课程的学分,相应的元组CREDIT值都要更新,有可能会出现同一门课学分不同。
c.插入异常,如计划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。
d.删除异常,若学生已经结业,从当前数据库删除选修记录。某些门课程新生尚未选修,则此门课程及学分记录无法保存。
原因:非关键字属性CREDIT仅函数依赖于CNO,也就是CREDIT部分依赖组合关键字(SNO,CNO)而不是完全依赖。
关系模式的分解举例
一、关系模式规范化的步骤
1NF
消除非主属性对码的部分函数依赖
2NF
消除非主属性对码的传递函数依赖
3NF
消除非主属性对码的部分和传递函数依赖
BCNF
消除非平凡且非函数依赖的多值依赖
4NF
消除不是由候选码所蕴涵的连接依赖
5NF
二、关系模式的分解
关系模式SL(Sno,Sdept,Sloc) 有函数依赖集: 关系模式SL(Sno,Sdept,Sloc) 有函数依赖集: Sno Sdept Sdept Sloc Sno Sloc SL∈2NF,该关系存在插入异常、删除异常、数据 2NF,该关系存在插入异常、删除异常、数据 冗余大和修改异常。因此需要分解成为更高范式 冗余大和修改异常。因此需要分解成为更高范式 的关系模式。
是一个关系模式, 上的一个FD FD集 ★设R是一个关系模式,F是R上的一个FD集。R分解
的一个分解, 设ρ={ R1,…,Rk }是R的一个分解,F是R上的 ρ={ R1, FD集 Ri( FD集,如果有 ∪∏Ri(F)⊨F,那么称 分解ρ保持函数依赖集F 分解ρ保持函数依赖集F。 第四种分解 判断关系模式的一个分解是否与原关系模式等价有 三种方法: 三种方法:
分解具有无损连接性; ① 分解具有无损连接性; 分解要保持函数依赖; ②分解要保持函数依赖; 分解既要保持函数依赖,又要具有无损连接性。 ③分解既要保持函数依赖,又要具有无损连接性。
关系模式分解的两种主要准则
关系模式分解的两种主要准则
关系模式分解的两种主要准则
在数据库设计过程中,关系模式分解是一个重要的步骤,它将一个复杂的关系模式分解为多个简单的关系模式。这个过程有助于提高数据库的性能和可维护性。在关系模式分解过程中,有两种主要的准则,即函数依赖和多值依赖。
函数依赖
函数依赖是关系模式分解的重要准则之一。函数依赖描述了一个关系模式中的属性之间的关系。在一个关系模式中,如果一个属性的值可以通过其他属性的值来确定,那么我们说这个属性依赖于其他属性。这种依赖关系可以用函数依赖来表示。
具体来说,如果在一个关系模式R中,属性集X的值决定着属性集Y的值,我们可以表示为X->Y。其中,X称为函数依赖的左侧,Y称为函数依赖的右侧。函数依赖的左侧属性集称为决定因素,右侧属性集称为被决定因素。
在关系模式分解过程中,我们需要将函数依赖的左侧属性集作为一个新的关系模式的主键,并将函数依赖的右侧属性集作为新的关系模式的属性。
函数依赖的准则包括:
完全依赖:如果函数依赖X->Y满足以下条件,我们称之为完全依赖:
Y不包含X中的任何一个属性。
如果从X中移除任何一个属性,函数依赖不再成立。
部分依赖:如果函数依赖X->Y满足以下条件,我们称之为部分依赖:
Y包含X中的某些属性。
如果从X中移除任何一个属性,函数依赖仍然成立。
通过分解满足完全依赖和部分依赖的关系模式,我们可以得到一个更规范、更高效的数据库设计。
多值依赖
多值依赖是关系模式分解的另一个重要准则。它描述了一个关系模式中两个属性之间的关系,其中一个属性的值可以确定另一个属性的多个值。
经验模式分解
经验模式分解
摘要
近些年来,随着计算机技术的高速发展与信号处理技术的不断提高,人们对图像的分析结构的要求也越来越高。目前图像处理已经发展出很多分支,包括图像分割、边缘检测、纹理分析、图像压缩等.经验模式分解(EMD)是希尔伯特—黄变换(Hilbert—HuangTransform)中的一部分,它是一种新的信号处理方法,并且在非线性、非平稳信号处理中取得了重大进步,表现出了强大的优势与独特的分析特点.该方法主要是将复杂的非平稳信号分解成若干不同尺度的单分量平稳信号与一个趋势残余项,所以具有自适应性、平稳化、局部性等优点。鉴于EMD方法在各领域的成功应用以及进一步的发展,国内外很多学者开始将其扩展到了二维信号分析领域中,并且也取得的一定的进展.但是由于二维信号不同于一种信号,限于信号的复杂性和二维数据的一些处理方法的有限性,二维经验模式分解(BEMD)在信号分析和处理精度上还存在一些问题,这也是本文要研究和改善的重点.
关键词:图像处理;信号分解;BEMD
Abstract
In recent years,with the rapid development of computer technology and the continuous improvement of signal processing technology,the demand for the analysis structure of the image is becoming more and more high. At present, many branches have been developed in image processing, including image segmentation, edge detection,texture analysis, image compression and so on。Empirical mode decomposition (EMD) is a part of Hilbert Huang transform (Hilbert—HuangTransform). It is a new signal processing method, and has made significant progress in nonlinear and non—stationary signal processing, showing strong advantages and unique analysis points。This method mainly decomposes the complex non-stationary signals into several single scale stationary signals with different scales and a trend residual term,so it has the advantages of adaptability, stationarity and locality。In view of the successful application and further development of EMD method in many fields,many scholars at home and abroad have expanded it to the two-dimensional signal analysis field,and have made some progress。However, because two dimensional signal is different from one signal,it is limited to the complexity of signal and the processing methods of two—dimensional data. Two-dimensional empirical mode decomposition (BEMD) still has some problems in the accuracy of signal analysis and processing, which is also the important point of research and improvement in this paper.
6.6模式分解PPT数据库系统概论经典课件
模式分解的定义。 无损分解的定义。 判断无损分解的方法。
A
B源自文库
C
D
AB
a1
a2
b13
b14
BC
b21
a2
a3
b24
CD
b31
b32
a3
a4
6.6 模式分解
解:利用算法6.3进行判断 2,根据C→D,可把b24改成a4。据A→B,不能修改表格。此时表格没有一行 全a行,因此相对于F2,R分解成ρ是损失分解。示意图如表所示。
A
B
C
D
AB
a1
a2
b13
b14
BC
形式化定义
设关系模式R<U, F>,如果把它分解为两个 戒多个子模式R1和R2,相应一个R关系中 的数据就要被分解成R1、R2两个戒多个子 表。假如将这些子表自然连接,即迚行 R1∞R2操作,得到的结果与原来关系中的 数据一致,信息并没有丢失,则称该分解 具有无损连接性,否则如果R≠R1∞R2,则 称该分解不具有无损连接性。
重复如下过程, 直到表不发生变化或一行成为a1a2… an。
6.6 模式分解
例:设关系模式R(ABCD),R分解成ρ={AB,BC,CD}。如果R上成立的函
数依赖集F1={B→A,C→D},那么ρ相对于F1是否为无损分解?如果R上成立的 函数依赖集F2={A→B,C→D}呢?
模式分解例题
模式分解例题
设有关系模式R(U, F),其中U={A,B,C,D,E },F ={AB →C,B →D,D →E,C →B },试问R最高为第几范式,并解释原因?如果R不是3NF或BCNF,要求将其分解为3NF和BCNF
关系R中的函数依赖如下图表示
•
R:
A,B →C;
ﻩB →D;
D →E;
ﻩC→B
第一范式规定关系的每一个分量必须是一个不可分的数据项。可以看出,该关系满足第一范式。
如果关系模式R满足第一范式,且它的任何一个非主属性都完全函数依赖于任一个候选码,则R满足第二范式(简记为2NF)。所以不是第二范式
分解成第二范式
R1:
A,B→C;
C →B
R2:
ﻩB→D;
D→E;
如果关系模式R满足2NF,并且它的任何一个非主属性都不传递依赖于任何候选码,则称R是第三范式(3NF), 记作R∈3NF。
分解成第三范式
R1 : ﻩ
ﻩA,B→C;
ﻩC →B
R21:
B→D
R22:
ﻩD→E
•如果关系模式R是1NF,且每个属性都不传递依赖于R的候选码,那么称R 是BCNF的模式。
R1 :
A,B →C;
ﻩC →B
R21:
B→D
R22:
D →E
R1中属性B传递依赖于R的候选码AB,故R1不是BCNF范式
关系模式R∈1NF,若X→Y,且Y⊆X 时,X必含有候选码,则R∈BCNF。
R1中C→B,且B⊆C ,但B不含有任何候选码,故R1不是BCNF范式
分解成BCNF范式
R11 :
A,B
R12 :
ﻩC →B
R21:
B →D
R22:
ﻩD →E
候选码是什么?
能够唯一标识一个元组的某一属性或属性组。
候选码:(A,B)和(A,C)
关系模式的分解举例
关系模式的分解举例
例1:社交媒体的关系模式分解
社交媒体是一个复杂的概念,可以通过关系模式来分解。首先,我们
可以将社交媒体的基本功能分解为发布信息、分享和互动。其次,我们可
以将社交媒体的用户分解为个人用户和商业用户,并进一步将个人用户分
解为普通用户和名人用户。然后,我们可以将社交媒体的内容分解为文本、图片和视频等不同的媒体形式。此外,我们还可以将社交媒体的盈利模式
分解为广告、付费会员和电子商务等不同的方式。通过这样的分解,我们
可以更好地理解社交媒体的各个方面,并进行深入的分析和讨论。
例2:餐厅的关系模式分解
餐厅是一个复杂的系统,可以通过关系模式来分解。首先,我们可以
将餐厅的基本组成部分分解为前厅和后厨。前厅包括接待和服务顾客的活动,后厨则涉及食品的准备和烹饪。然后,我们可以将餐厅的顾客分解为
堂食和外卖两类。再次,我们可以将餐厅的菜单分解为早餐、午餐和晚餐
等不同的时段,并进一步将菜单分解为主菜、配菜和饮料等不同的种类。
此外,我们还可以将餐厅的销售渠道分解为线下和线上两个方面。通过这
样的分解,我们可以更好地理解餐厅的运作方式,并进行优化和改进。
例3:电子商务的关系模式分解
电子商务是一个复杂的概念,可以通过关系模式来分解。首先,我们
可以将电子商务的基本活动分解为线上购物、支付和配送等不同的步骤。
其次,我们可以将电子商务的参与者分解为买家、卖家和平台。买家是指
网上购物的消费者,卖家是指网上销售商品的商家,平台是指提供交易平
台的电商平台。然后,我们可以将电子商务的产品分解为实物商品和虚拟
商品两类。我们还可以将电子商务的支付方式分解为在线支付、货到付款和分期付款等不同的方式。通过这样的分解,我们可以更好地理解电子商务的各个方面,并进行更有针对性的研究和改善。
模式分解
2.保持FD (函数依赖)的分解
定义1:设F 是属性集U 上的FD 集,Z 是U 的子集,F 在Z 上的投影用πZ (F)表示,定义为
πZ (F)={X →Y|X →Y ∈F +,且XY ⊆Z}
定义2. 设},...{1K R R =ρ 是R 的一个分解,F 是R 上的FD 集,如果有)(1F R i k
i π= ╞ F ,那么称分解ρ保持函数依赖集F 。 根据定义1,测试一个分解是否保持FD ,比较可行的方法是逐步验证F 中的每个FD 是否被)(1F R i k
i π= 逻辑蕴涵。如果F 的投影不蕴涵F ,而我们又用},...{1K R R =ρ表达R ,很可能会找到一个数据库实例σ 满足投影后的依赖,但不满足F 。对σ的更新也有可能使r 违反FD 。
案例1:
R (T#,TITLE ,SALARY )。如果规定每个教师只有一个职称,并且每个职称只有 一个工资数目,那么R 上的FD 有T#→TITLE 和TITLE →SALARY 。
如果R 分解成ρ={R 1,R 2},其中R 1={T#,TITLE},R 2={T#,SALARY }。则该分解具有无损连接性,但未保持函数依赖,丢失了依赖TITLE →SALARY 。
习题1:
设关系模式R (ABC ),ρ={AB ,AC}是R 的一个分解。试分析分别在F 1={A →B};F 2={A →C ,B →C},F 3={B →A},F 4={C
→B,B→A}情况下, 是否具有无损分解和保持FD的分解特性。
算法1:分解成2NF模式集的算法
数据库,模式的分解,无损连接性,教案
对F中的每个函数依赖进行一次上述的处置,称对F 的一次扫描。
整理版ppt
14
算法2 判别一个分解的无损连接性
③比较扫描前后,表有无变化。如有变化, 则返回第②步处理,否则,算法结束,则 ρ相对于F是有损分解。 如果发生循环,那么前次扫描至少应使该 表减少一个符号,表中符号有限,因此循 环必然会终止。
第3种分解方法具有无损连接性。 问题: (1)没有保持原关系中的函数依赖,即 S-L中的函数依赖Sdept→Sloc没有投影到关系模 式ND、NL上。 (2)存在冗余和操作异常。
整理版ppt
5
3.9.2 无损分解(续)
4. 将SL分解为下面二个关系模式: ND(Sno, Sdept) , DL(Sdept, Sloc) 该分解保持了函数依赖(且具有无损连接性)。
整理版ppt
11
3.9.4 模式分解算法
• 算法1 判别一个二元分解的无损连接性。 若F+中至少存在如下函数依赖中的一个:
(1)(U1∩U2)→U1-U2 (2)(U1∩U2)→U2-U1
则ρ={ R1<U1>,R2<U2>}是R的无损分解。反之也
成立。
如:模式S-L(Sno, Sdept, Sloc)
整理版ppt
2
第16讲 模式分解
三,保持函数依赖的分解
定义: 定义:设ρ={R1<U1, F1>,…, Rk<Uk,Fk>}是R<U,F>的一 是R<U,F>的一 个分解, 保持函数依赖. 个分解,若 F = ( U Fi ) , 则ρ保持函数依赖. 其中F 其中Fi=∏Ui F.
i =1 + k +
已知R<U,F>,U={A,B,C},F={A→B R<U,F>,U={A,B,C},F={A→B, 例7: 已知R<U,F>,U={A,B,C},F={A→B,C→B} 判断ρ1={AC,AB}是否具有依赖保持性? ρ1={AC,AB}是否具有依赖保持性 判断ρ1={AC,AB}是否具有依赖保持性? 已知R<U,F>,U={ABCDEF}, 例8: 已知R<U,F>,U={ABCDEF}, F={A→B,E→A,C→F, CE→D},判断ρ2={ABE,CDEF}是否具有依赖保持性? ρ2={ABE,CDEF}是否具有依赖保持性 CE→D},判断ρ2={ABE,CDEF}是否具有依赖保持性?
Sdept 计算机 电信 自控 电信 管理
Sloc D1 D2 D3 D2 D2 R2
分解可恢复, 分解可恢复, 并且解决了异常. 并且解决了异常.
Sdept Sloc D1 D2 D3 D2
数据库模式的分解
例:设有关系模式R(A,B,C), ρ ={R1,R2}为它的 一个分解,其中 R1=AB,R2=BC,r为R的一个关系, r1=πR1(r),r2=πR2(r), 求 r1,r2,mρ (r),由此可得到什么结论?
26
r r A
a1 a2 a1
B b1 b1 b1
C c1 c2 c2
r1=πR1(r)
但是,无损连接性不一定能解决插入异常、删除异常、 修改复杂、数据冗余等问题
30
算法6.2 判别一个分解的无损连接性
ρ ={ R1<U1,F1>,R2<U2,F2>, …,Rn<Un,Fn>}是
R<U,F>的一个分解, U={A1,A2,…AN},F={FD1,FD2,…FDρ }
设F是一极小依赖集,记FDi为Xi→Ali
31
算法6.2 判别一个分解的无损连接性
1. 构造初始表 : 构造一个 k 行 n 列的初始表,其中 每列对应于 R 的一个属性,每行用于表示分解 后的一个模式组成。如果属性Aj 属于关系模式 Ri, 则在表的第 i 行第 j 列置符号 aj 否则置符号 bij .
32
2.根据F中的函数依赖修改表内容 考察 F 中的每个函数依赖X→Y,在属性组 X 所在的那 些列上寻找具有相同符号的行,如果找到这样的两行 或更多的行,则修改这些行,则使这些行上属性组 Y所 在的列上元素相同。 修改规则是:如果y所在的要修改的行中有一个为aj, 则这些元素均变成 aj;否则改动为 bmj, ,其中m为这些 行的最小行号。注意,若某个bij被改动,则该列中凡 是 与 bij 相 同 的 符 号 均 做 相 同 的 改 动 。 循环地对F 中的函数依赖进行逐个处理,直到发现表中 有一行变为a1,a2,…an或不能再被修改为止。
第五章第3讲关系模式分解
例 5.7 设R(ABCDE),F={A→C,B→C,C→D,DE→C,
CE→A},ρ={R1(AD),R2(AB),R3(BE),R4(CDE), R5(AE)},检验分解ρ是否具有无损联接性。 第三步:判断
(R1∩R2)→(R1-R2)
或(R1∩R2)→(R2-R1) 时,ρ 具有无损联接性。
3、判断定理(续1)
证:充分性
∈F
(R1∩R2)→(R1-R2)或(R1∩R2)→(R2-R1)成立
R1∩R2 R1 R2 R1-R2 R2-R1
aa…a aa…a
aa…a bb…b
bb…b aa…a
3、判断定理(续2)
a2
a2 b42
b13
b13 a3
b24
b34 a4
b25
a5 a5
R5
a1
b52
b13
b54
a5
例 5.7 设R(ABCDE),F={A→C,B→C,C→D,DE→C,
CE→A},ρ={R1(AD),R2(AB),R3(BE),R4(CDE), R5(AE)},检验分解ρ是否具有无损联接性。 第二步:修正③C→D
第9讲 关系模式的分解与范式
a1 b21
a2 b22
a3 b23
a4 a4
a15 5 b a5
a1a2a3a4a5 ,ρ相对于F是无损连接分解
SD分解为ρ={S(SNo,SN,Age,Dept),D(Dept,MN)}时,S、 D都属于3NF,且既具有无损连接性又具有保持函数依赖性。 3NF解决了2NF中存在的四个问题: 数据冗余降低了 不存在删除异常
18
4.4.5 多值依赖与第四范式
多值依赖的定义
假设学校中一门课程可由多名教师讲授,教学中他们使用相 同的一套参考书。 课程C 数据库原理 教师T 吴胜利 陈 晨 参考书B 数据库原理与应用 数据库系统 SQL Server 2000 算法与数据结构 数据结构教程
数据结构
王 平 张京生
关系CTB
19
4.3 关系模式的分解*
4.3.1 模式分解问题
定义4.11
设有关系模式R(U),R=R1∪R2∪…∪Rk,ρ={R1, R2,…,Rk}。这里ρ称为R的一个分解,也称为数 据库模式。
泛关系模式 数据库模式 ρ={R1,R2,…,Rk} σ=<r1,r2,…,rk> 数据库实例 分解是否具有无损连接 分解是否保持了函数依赖 衡量关系模式的分解是否可取
R r
泛关系
模式分解示意图
1
4.3.2 无损连接分解
数据库模式的分解
I b13 a3
P b14 a4
R1 R2
பைடு நூலகம்
S a1 a1
A a2 a2
I b13 a3
P b14 a4
所以,分解是无损联接
35
例2:已知关系模式R(U,F) , U={SNO,CNO,GRADE,TNAME,TAGE,OFFICE} F={(SNO,CNO)→GRADE,CNO→TNAME,
TNAME→(TAGE,OFFICE)} 以及R上的两个分解 ρ 1={SC,CT,TO},
19
模式的分解
如果一个分解具有无损连接性,则它能够保证 不丢失信息。
如果一个分解保持了函数依赖,则它可以减轻 或解决各种异常情况。 分解具有无损连接性和分解保持函数依赖是两 个互相独立的标准。具有无损连接性的分解不 一定能够保持函数依赖。同样,保持函数依赖 的分解也不一定具有无损连接性。
20
13
注意:本节中的自然连接与第二章中的自然 连接有区别;在本节中,计算自然连接时, 两个关系中如果有相同的属性列,则按第二 章中的自然连接的定义进行,如果两个关系 中没有相同的属性列,则按笛卡儿积运算进 行。
14
模式的分解(续)
2. 对R又进行第二种分解 ρ2={R1〈{SNO,SDEPT},{SNO→SDEPT}〉, R2〈{SNO,MN},{SNO→MN}〉}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章第四节 模式的分解
2018/10/5
1
定义6.16 模式分解
在对函数依赖的基本性质了解之后,可以具体地 来讨论模式的分解了。 定义6.16:关系模式R(U,F)的一个分解是指: {R1 U1, F1 , R2 U2 , F2 ,..., Rn Un , Fn }
1 1 1 2 2 2 k k k
}
2018/10/5
11
判断无损连接的算法
算法6.2 判断一个分解的无损连接性 {R1 U1, F1 , R2 U2 , F2 ,..., Rk Uk , Fk是 }R<U,F〉的一 个分解,U={A1,A2,…,An},F={FD1,FD2,…, FDm},这里我们设F是一个极小依赖集,记FDi为 Xi→Ali。 (1)建立一张n列k行的表。一列对应一个属 性,一行对应一个分解后的模式;在i行j列中的空白 处,若属性Aj属于Ui,则填上aj,否则填上bij。
2018/10/5 3
本小节要讨论的内容
• “无损连接性”和“保持函数依赖”的含 义; • 对于这三种角度的分解可以达到的分离程 度,即可以达到第几范式; • 对于这几种分离的分解算法;
下面用一个实际分解的例子来引出本小 节的内容。
2018/10/5 4
一个分解实例
例4:一个关系模式R<U,F>,其中U={Sno,Sdept, Mn},F={Sno→Sdept,Sdept →Mn}。 如果我们把它分解成:
我们可以对照课本表6.5和分解的办法,我们可以把表6.5 分解成了三个关系: r1={S1,S2,S3,S4} r2={D1,D2,D3} r3={张五,李四,王一}
1 {R1 Sno, , R2 Sdept, , R3 Mn, }
2018/10/5
5
Baidu Nhomakorabea个分解实例(续)
我们从r1,r2和r3这三个关系中已经不能回 答“某个学生在哪个系学习”了,显然这样的分 解是失败的。这是由于失去了关系的“无损连接 性”。 无损连接性是指:分解后的关系通过自然连接 运算还能恢复原来的关系。 而我们把r1,r2和r3做自然连接(它们的笛卡 尔积)后,我们得到的是一个具有4*4*4=64行的 没有实际意义的关系表。不能恢复表5.3所示的 含义了。
2018/10/5
12
判断无损连接的算法(续)
(2)对于每一个FDi做如下的操作:取 F中的函数依赖X→Y,如果表格中有两行在X 分量上相等,在Y分量上不相等,那么修改Y 分量上的值,使这两行在Y分量上也相等,修 改时分两种情况:
① 如果Y的分量上有一个是aj,那么另外一个 也修改正aj。 ② 如果Y的分量上没有aj,那么下标i较小的那 个bij替换其他的符号。
2018/10/5 6
一个分解实例(续2)
分解2:
这种分解通过自然连接后是可以恢复原 来的关系的,但是我们发现在原来的关系模 式的F中有函数依赖Sdept→Mn,而在分解后 的关系模式中不存在了。 因此,关系模式的分解就要求具有“保 持函数依赖”的特性才好。
2018/10/5
2 {R1 {Sno, Sdept},{Sno Sdept} , R2 {Sno, Mn},{Sno Mn} }
2018/10/5
9
其中:r是R的一个关系; ri= (r)是Ri的一个关系; Ri 则有:
m
与r以及ri的关系
(1)r m (r ) (2)若s m (r ), 则 Ri ( s ) ri (3)m (m (r )) m (r )
2018/10/5 10
无损连接的定义
2018/10/5 13
判断无损连接的算法(续2)
对F中的m个FD逐一进行一次这样的处置, 称为对F的一次扫描。 (3)比较扫描前后表的变化,若有则转到第 (2)步,否则算法终止。 如果发生循环,那么前次扫描至少应使该表 减少一个符号,表中符号有限,因此循环必然终 止。 定理6.4:若修改结束后的表格中有一行全 是a,即a1,a2,…,an,那么该模式分解是无 损连接分解。 下面我们用两个例子来解释一下。
2018/10/5
8
6.4.2.1 分解的“无损连接性”
我们先来定义几个符号: 分解: {R1 U1, F1 , R2 U2 , F2 ,..., Rk Uk , Fk } 其中r是R<U,F>的一个关系。 再定义: m = ( r ) Ri 也就是说 是r在各个模式分解上的投 m 影的连接。
其中 U U i并且没有Ui U j ,1 i, j n, Fi是F在Ui上的投影
i 1 n
定义6.17: Fi是指函数依赖集合{X→Y∣ X→Y∈F+∧XY是Ui的子集}的一个覆盖。
2018/10/5 2
6.4.1 模式分解的三个定义
对于每一个分解是多种多样的,但是分 解后的模式应该与原模式是等价的。 那么怎么衡量分解的等价呢?从不同的 角度可以分为三种: • 分解要具有“无损连接性” • 分解要“保持函数依赖” • 分解既要“保持函数依赖”,又要具有 “无损连接性”
定义6.18 {R U , F , R U , F ,..., R U , F 是R<U,F>的一个分解,若对R<U,F>的任 何一个关系r均有r= (rm )成立,则称这个分 解具有无损连接性。 也就是说:把分解后的关系做自然连接 后可以恢复成原来的关系就可以了。 那么用什么样的数学法子来判断呢?
7
一个分解实例(续3)
我们来看一个比较好的分解:
3 {R 我们按这种模式分解后的关系通过自然连接是 1 {Sno, Sdept},{Sno Sdept} , R2 {Sdept , Mn},{Sdept Mn} }
可以恢复到原来的关系的,同时,我们可以显然的 发现在原关系模式中的函数依赖在新的关系模式中 都存在,因此,这次分解既保证了“无损连接特 性”,又“保持了函数依赖”。 下面我们用形式化的概念来描述“无损连接性” 和“保持函数依赖性”。