-
2017-06-15 15:52:09
保持依赖的判断。
如果F上的每一个函数依赖都在其分解后的某一个关系上成立,则这个分解是保持依赖的(这是一个充分条件)。
如果上述判断失败,并不能断言分解不是保持依赖的,还要使用下面的通用方法来做进一步判断。
该方法的表述如下:
算法二:
对F上的每一个α→β使用下面的过程:
result:=α;
while(result发生变化)do
for each 分解后的Ri
t=(result∩Ri)+ ∩Ri
result=result∪t更多相关内容 -
判断模式分解是否保持函数依赖?
2018-10-17 05:22:12判断模式分解是否保持函数依赖? 判断模式分解是否保持函数依赖? 判断模式分解是否保持函数依赖? -
模式分解是否保持函数依赖的判断方法以及例子
2020-04-05 12:16:23如果F上的每一个函数依赖都在其分解后的某一个关系上成立,则这个分解是保持依赖的(充分条件)。 如果上述判断失败,并不能断言分解不是保持依赖的,因为上面只是充分条件,还要使用下面的通用方法来做进一步判断...保持依赖的判断。
如果F上的每一个函数依赖都在其分解后的某一个关系上成立,则这个分解是保持依赖的(充分条件)。
如果上述判断失败,并不能断言分解不是保持依赖的,因为上面只是充分条件,还要使用下面的通用方法来做进一步判断。
过程表述如下:
对F上的每一个α→β使用下面的过程:
result:=α; while(result改变)do for each 分解后的Ri t=(result∩Ri)+ ∩Ri result=result∪t
例1:考虑关系模式R(A,B,C,D)分解{R1(A,B),R2(BC),R3(C,D)},
函数依赖集F={A→B,B→C,C→D,D→A}
显然,AB包含于R1,BC包含于R2,CD包含于R3。因此,只需要验证是否有D→A呗分解p所保持。为此,我们使用算法。
首先,result={D}进入 repeat循环,当i=1时不改变,因为{D}U(({D}∩{A,B})+∩{A,B})仍是{D}。
同样方法,当i=2时Z不变。然而,i=3时,我们得到
result={D}U(({D}∩{C,D})+∩{C,D}
={D}U({D}+∩{C,D})={D}U({A,B,C,D}∩{C,D})
={C,D}
再次执行 repeat的循环体,当i=2时产生result={B,C,D}而第三遍,当i=1时置result为{A,B,C,D}。此后,T不再改变。这样,result={A,B,C,D}它包含A,因此,D→A被分解所保持。从而是保持函数依赖的分解。
例2:已知R<U,F>,U={A,B,C,D,E},F={A→C,B→C,C→D,DE→C,CE→A},R的一个分解为R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE),判断这个分解是否具有函数依赖性。
先看F中每一个函数依赖,R4有C->D,DE->C。A->C,B->C,CE->A。这三个函数依赖分解模式里均未能覆盖。
开始使用算法进行检测:
首先对于A->C,result = A,(A)+ = ACD ,T=AD,result=AD,result改变,进入下一个循环:result = AD,(ABD)+ = ABCD ,t=AB,result=ABD。
result改变:result = ABD, (ABD)+ = ABCDE, t=BE,result=ABDE。
result改变:result = ABDE,(ABCD)+=ABCDE,t=CDE,result=ABCDE。
result改变:(从这一步就能看出来,保持了函数依赖了,因为已经包含C了)result = ABCDE,(ABCDE)+=ABCDE,t=AE,result=ABCDE。
result未改变。退出循环。、由于result=ABCDE,包含了C,所以分解保持函数依赖。
-
数据库模式分解是否为无损连接和是否保持函数依赖的判断方法
2021-04-21 12:08:25是否为无损连接 方法一:无损连接定理 关系模式R(U,F)的一个分解,ρ={R1<U1,F1>,R2<U2,F2>}具有无损连接的充分必要条件是: U1∩U2→U1-U2 €F+ 或U1∩U2→U2 -U1€F+ 方法二:算法 ρ={R1<U1,...是否为无损连接
方法一:无损连接定理
关系模式R(U,F)的一个分解,ρ={R1<U1,F1>,R2<U2,F2>}具有无损连接的充分必要条件是:
U1∩U2→U1-U2 €F+ 或U1∩U2→U2 -U1€F+
方法二:算法
ρ={R1<U1,F1>,R2<U2,F2>,…,Rk<Uk,Fk>}是关系模式R<U,F>的一个分解,U={A1,A2,…,An},F={FD1,FD2,…,FDp},并设F是一个最小依赖集,记FDi为Xi→Alj,其步骤如下:
① 建立一张n列k行的表,每一列对应一个属性,每一行对应分解中的一个关系模式。若属性Aj Ui,则在j列i行上真上aj,否则填上bij;
② 对于每一个FDi做如下操作:找到Xi所对应的列中具有相同符号的那些行。考察这些行中li列的元素,若其中有aj,则全部改为aj,否则全部改为bmli,m是这些行的行号最小值。
如果在某次更改后,有一行成为:a1,a2,…,an,则算法终止。且分解ρ具有无损连接性,否则不具有无损连接性。
对F中p个FD逐一进行一次这样的处理,称为对F的一次扫描。
③ 比较扫描前后,表有无变化,如有变化,则返回第② 步,否则算法终止。如果发生循环,那么前次扫描至少应使该表减少一个符号,表中符号有限,因此,循环必然终止。
举例1: 已知R<U,F>,U={A,B,C},F={A→B},如下的两个分解:
① ρ1={AB,BC}
② ρ2={AB,AC}
判断这两个分解是否具有无损连接性。
①因为AB∩BC=B,AB-BC=A,BC-AB=C
所以B→A ¢F+,B→C ¢ F+
故ρ1是有损连接。
② 因为AB∩AC=A,AB-AC=B,AC-AB=C
所以A→B €F+,A→C ¢F+
故ρ2是无损连接。
举例2: 已知R<U,F>,U={A,B,C,D,E},F={A→C,B→C,C→D,DE→C,CE→A},R的一个分解为R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE),判断这个分解是否具有无损连接性。
① 构造一个初始的二维表,若“属性”属于“模式”中的属性,则填aj,否则填bij
② 根据A→C,对上表进行处理,由于属性列A上第1、2、5行相同均为a1,所以将属性列C上的b13、b23、b53改为同一个符号b13(取行号最小值)。
③ 根据B→C,对上表进行处理,由于属性列B上第2、3行相同均为a2,所以将属性列C上的b13、b33改为同一个符号b13(取行号最小值)。
④ 根据C→D,对上表进行处理,由于属性列C上第1、2、3、5行相同均为b13,所以将属性列D上的值均改为同一个符号a4。
⑤ 根据DE→C,对上表进行处理,由于属性列DE上第3、4、5行相同均为a4a5,所以将属性列C上的值均改为同一个符号a3。
⑥ 根据CE→A,对上表进行处理,由于属性列CE上第3、4、5行相同均为a3a5,所以将属性列A上的值均改为同一个符号a1。
⑦ 通过上述的修改,使第三行成为a1a2a3a4a5,则算法终止。且分解具有无损连接性。
是否保持函数依赖
方法一:算法
对于关系模式R(U,F), 设P = {R1(U1,F1) , R2(U2,F2) , … , Rn(Un,Fn)}是R的一个分解,若F+ = (UFi)+ ,则称分解P是保持函数依赖。 注:U:并集例:R ={A,B,C,D,E},F = {B → A , D → A , A → E , AC → B},判断分解P ={R1(ABCE) , R2(CD)}是否保持函数依赖
解:
首先,我们需要将R1和R2的函数依赖F1,F2找到。
显然有 F1 = {B → A ,A → E , AC → B} ,F2 = { }
注:这样就找全了吗?其实不然,在这一步中最容易漏掉部分函数依赖,比如传递依赖等关系会因为F的分组而丢失。
因此,在这一步,我的习惯是计算一下左边属性的闭包 B+ ={B,A,E} 显然 B 和 E存在传递依赖 即 B → E,同理 D+={D,A,E} ,发现D+没有C,即D推不出C A+={A,E} (AC)+ = {A ,C , B, E},显然 AC → A , AC→ E
综上,F1 更新为 F1 = {B → A ,A → E , AC → B, B → E,AC → A , AC→ E}
F2依旧是空集
令 G = F1 ∪ F2 = {B → A ,A → E , AC → B, B → E,AC → A , AC→ E}
我们检查一下F中的函数依赖,是否在G中全部都出现,如果出现,则算法结束,保持函数依赖 发现,D → A 不在G中,此时,我们需要计算元素D在G下的闭包
显然,D+ ={D} 不包含A,因此该分解不保持函数依赖。
注:如果D+ ={D ,A },包含了A,则该分解保持函数依赖. -
判断是否为无损连接,保持函数依赖
2020-04-07 11:37:07判断无损连接性: 方法一:无损连接定理 关系模式R(U,F)的一个分解,ρ={R1<U1,F1>,R2<U2,F2>}具有无损连接的充分必要条件是: U1∩U2→U1-U2 ∈F+ 或U1∩U2→U2 -U1∈F+ 方法二:算法 ρ...判断无损连接性:
方法一:无损连接定理
关系模式R(U,F)的一个分解,ρ={R1<U1,F1>,R2<U2,F2>}具有无损连接的充分必要条件是:
U1∩U2→U1-U2 ∈F+ 或U1∩U2→U2 -U1∈F+
方法二:算法
ρ={R1<U1,F1>,R2<U2,F2>,...,Rk<Uk,Fk>}是关系模式R<U,F>的一个分解,U={A1,A2,...,An},F={FD1,FD2,...,FDp},并设F是一个最小依赖集,记FDi为Xi→Alj,其步骤如下:
① 建立一张n列k行的表,每一列对应一个属性,每一行对应分解中的一个关系模式。若属性Aj ∈Ui,则在j列i行填上aj,否则填上bij;
② 对于每一个FDi做如下操作:找到Xi所对应的列中具有相同符号的那些行。考察这些行中li列的元素,若其中有aj,则全部改为aj,否则全部改为bmli,m是这些行的行号最小值。
如果在某次更改后,有一行成为:a1,a2,...,an,则算法终止。且分解ρ具有无损连接性,否则不具有无损连接性。
对F中p个FD逐一进行一次这样的处理,称为对F的一次扫描。
③ 比较扫描前后,表有无变化,如有变化,则返回第② 步,否则算法终止。如果发生循环,那么前次扫描至少应使该表减少一个符号,表中符号有限,因此,循环必然终止。
判断保持函数依赖:
若F+=F1+∪F2+∪...∪Fk+,则R<U,F>的分解ρ={R1<U1,F1>,R2<U2,F2>,...,Rk<Uk,Fk>}保持函数依赖。
例题:
对于属性集ABCDEF和函数依赖集{A→BC,CD→E,B→D,BE→F,EF→A},说明下列分解a.是否是无损连接分解;b.是否保持函数依赖。
(1){ABCD,EFA}
a.判断无损连接分解
U1∩U2=A,
U1-U2=BCD,
U2-U1=EF
存在A→BCD∈F+,所以分解是无损连接分解。
b.判断保持函数依赖
U1=ABCD,F1+={A→BC,B→D}
U2=EFA,F2+={EF→A}
丢失了CD→E,BE→F,因此没有保持函数依赖。
用算法判断是否无损连接
设有关系模式R(U,V,W,X,Y,Z),其函数依赖集:F={U→V,W→Z,Y→U,WY→X},现有下列分解:p={UVY,WXYZ}
判断分解p是否为无损连接
一、画出这样的二维图
U Y W X Y Z UVY WXYZ 二、在纵轴每个关系中拥有的元素添加ai(看下面)
U Y W X Y Z UVY A1 A2 A5 WXYZ A3 A4 A5 A6 三、根据函数依赖集(F={U→V,W→Z,Y→U,WY→X})中的每个依赖,填充二维表(看下面)
根据U→V有
就是看U列和V列在某个关系中是否存在,如果存在,则在其他关系里的V列加上
这里是U 和 V在UVY里都存在,所以在WXYZ 里加上V关系
U V W X Y Z UVY A1 A2 A5 WXYZ A2 A3 A4 A5 A6
根据W→Z
U V W X Y Z UVY A1 A2 A5 A6 WXYZ A2 A3 A4 A5 A6
根据Y→U
U V W X Y Z UVY A1 A2 A5 A6 WXYZ A1 A2 A3 A4 A5 A6
根据WY→X
U V W X Y Z UVY A1 A2 A4 A5 A6 WXYZ A1 A2 A3 A4 A5 A6
无损连接分解在二维图里的表示方式就是,有其中一行全部覆盖了ai(这里是WXYZ行)
所以是无损分解。
-
数据库中的无损连接分解和是否保持函数依赖的判定
2018-06-11 17:48:45系模式中是否为无损连接 2)是否保持函数依赖 一、无损连接的判定: 1) 如果分解后的的关系模式是形如{U1,U2}这,里面只有两个,那很好做,就判断 或 是否成立,成立的话肯定是 无损... -
模式分解保持函数依赖判断——数据库考试复习
2021-04-29 21:40:20R的一个分解为R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE),判断这个分解是否具有函数依赖性。 分解出的R1 F1{A—>D} R2 F2{Q} R3 F3{Q},R4(CDE) F4(DE->C,C->D} A->C、B->C、CE->A没有被覆盖。... -
函数依赖性判断
2022-02-11 15:07:47(2)如果每个依赖都包含在分解的某个模式中,则结束算法,判断出保持了函数依赖 (3)如果第二部中某几个函数依赖并不包括在任一分解模式中则执行如下算法 对函数依赖α→β使用下面的过程:result:=α;while... -
数据库系统概述--判断分解是否保持函数依赖
2020-09-06 23:29:37 -
数据库模式分解----如何判断保持无损连接性和保持函数依赖
2021-05-08 09:37:08数据库模式分解----如何判断保持无损连接性和保持函数依赖 书上的算法写的太抽象了!看了半天!简单用人话解释一下! 在之前首先要了解一下属性集的闭包的概念 属性集的闭包 令α为一属性集。我们称在函数依赖集F下... -
数据库系统原理范式分解——保持函数依赖与无损连接性练习题
2020-07-03 12:57:52给定函数依赖集合F={ A2→(A3,A5); (A1, A3)→A6; (A2,A6)→ A4 },则关于R既保持 依赖又无损连接地分解成第三范式,分解正确 的是 A.p={R1(A2,A3, A5), R2(A1,A3,A6), R3(A2,A4,A6) } B.p={R1(A2,A3, A5), R2(A1... -
无损分解与函数依赖的判断
2011-12-21 12:20:32数据库课程的无损分解与函数依赖的判断。对学数据库有帮助。 -
关系模式分解,如何判断模式分解无损连接性和是否保持函数依赖?算法举例说明
2020-04-19 18:41:34这里给一个分解算法: 转换为3NF既有无损连接又保持函数依赖的分解 算法如下: 对函数依赖集进行极小化处理。 找出不在F中出现的属性,将这样的属性构成一个关系模式。(此情况较少见) 对F按具有相同左部的原则... -
如何判断模式分解是否保持函数依赖?
2018-10-17 01:52:17## 答:候选码 A,是无损分解,不保持 FD。 -------------------------------- ## F={A→BC,C→AD},ρ={ABC, AD} ## 答:候选码 A 和 C,是无损分解,保持 FD。 请问这两个答案是不是都正确?怎么得到的? -
【保姆式教学】由牛客网例题而引申出的:对数据库中的分解是否为无损连接和是否保持函数依赖的判定
2019-12-08 14:09:47【牛客网数据库原理题目】设关系模式R(A,B,C),F是R上成立的FD集,F={A→B,C→B},ρ={AB,AC}是R的一个分解,那么分解ρ( )?...( A ) 保持函数依赖集F ( B ) 丢失了A→B ( C ) 丢失了C→B ( D ) 丢失了B→C -
判断分解的无损连接性和保持函数依赖
2019-06-29 21:36:41判断无损连接性: 方法一:无损连接定理 关系模式R(U,F)的一个分解,ρ={R1<U1,F1>,R2<U2,F2>}具有无损连接的充分必要条件是: U1∩U2→U1-U2∈F+或U1∩U2→U2-U1∈F+ 方法二:算法 ρ={R1<U1,... -
[总结]关系数据库设计基础(函数依赖、无损连接性、保持函数依赖、范式、……)
2020-12-19 11:42:41联系(Relationship)1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中一个...函数依赖(FunctionDependency)定义设关系模式R(U),属性集合U={A1,A2,…,An},X,Y为属性集合U的子集,如果对于关系模式R(U)... -
检验分解的函数依赖保持性
2020-03-04 23:04:14输入:关系模式R的函数依赖集F和...输出:P是否保持函数依赖的判定。 方法: (1)for(每个x→y∈F)do (2)begin (3) if(不存在i使得XYR)then / * 检验X→Y是否被分解p所保持 * / (4) begin (5) Z<-X; (6) repeat (7) ... -
主码求法,范式判断,最小函数依赖求法
2019-05-08 18:45:21数据库中主码求法,NF判断,最小函数依赖 -
判断函数依赖
2022-03-04 09:34:30例:R ={A,B,C,D,E},F = {B → A , D → A , A → E , AC → B},判断分解P ={R1(ABCE) , R2(CD)}是否保持函数依赖 解: 首先,我们需要将R1和R2的函数依赖F1,F2找到。显然有 ... -
关系的无损链接、函数依赖的判断
2019-09-19 11:48:25关系的无损链接、函数依赖的判断 1.关系的无损连接 首先什么是有损,什么是无损连接? 答:有损:不能还原 无损:可以还原 无损连接分解:指将一个关系模式分解成若干个关系模式后,通过直燃链接和投影运算仍然能... -
函数依赖
2021-04-17 14:13:50函数依赖 定义 设R(U)是属性集U上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等而在Y上的属性值不相等,则称X函数确定Y或Y函数依赖于X ,记作X->Y,X... -
将关系模式转为3NF且保持函数依赖;将关系模式转为3NF且无损分解且保持函数依赖;将关系模式转为BCNF且保持...
2020-12-08 21:14:50③判断最后的依赖集是否包含候选键,不包含的话为3NF且保持函数依赖 3.不包含的话为3NF且保持函数依赖,假如要转为3NF且无损分解且保持函数依赖,只要加上一个候选键即可(原先就有候选键的不用加,因为已经是3NF且... -
求解函数依赖是否保持中的投影算法
2020-10-25 23:58:46求解函数依赖是否保持中的投影算法 ** 文章目录求解函数依赖是否保持中的投影算法前言一、第一步求H在每个分解上的投影1.求F12.求F2二、看H+是否等价于G+ 前言 在学习数据库时,我们总会遇到求解一个分解是否满足... -
3NF的无损连接和保持函数依赖的分解、BCNF的无损连接的分解
2019-03-05 10:58:003NF:不存在非主属性对码的传递函数依赖或部分函数依赖。 如AB-C,A->C 码为(A,B),A,B是主属性,C是非主属性,C部分函数依赖于码,即不满足3NF BCNF:每个决定因素都包含码(相比于3NF,优点是加上了对主... -
关系规范化之分解的函数依赖保持性判定
2016-05-01 23:22:04令G=F1 U F2 U F3...U Fk(多个函数依赖集合求并集),若F+==G+(其实就是如果G等于F)的话,则分解p保持函数依赖。 实质: G=F1 U F2 U F3...U Fk,判断G和原函数依赖F是否等价 输入:R上的函数依赖集F以及R的一个... -
关系模式判断候候选关键字 与 函数依赖无损连接
2020-10-10 16:33:50关系模式判断候候选关键字 与 ...分解( )是无损连接,并保持函数依赖的。 问题一: A: AB B:DE C:CE D:DB 问题二: A.p={R1(AC),R2(ED),R3(B)} B.p={R1(AC),R2(E),R3(DB)} C.p={R1(AC),R2(ED),R... -
数据库 求闭包、求候选码、范式转换、最小依赖集、无损分解及保持函数依赖
2021-10-27 16:23:461.求闭包 推理规则推导 2. 求最小依赖集 具体步骤 1.右边单一化 2.除去自身求闭包 3.左部最小化 练习1: ...3.无损分解及保持函数依赖 无损分解两个方法: 1.表格法 2.适用于分解为2个ρ ... -
最小函数依赖集,候选码,保持3NF依赖性的分解例题
2020-04-23 15:04:32设关系R(ABCDE)及R上成立的...(3)求具有无损连接且保持函数依赖性的3NF分解。 答: (1) ①:将函数依赖右边全变为单属性: F = {A→D, A→B, E→D, D→B,BC →D, DC →A}。 ②:检查每一个函数依赖是否必须: ...