规范化无损分解及保持函数依赖
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设关系模式R(ABCDE),R的最小依赖集为{A→B,C→D}.从依赖集可知R的候选键ACE。
ρ={AB,CD,ACE}
赖的(Preserve dependency)
模式分解与模式等价问题
模 式 设 计
数据等价
无损分解
依赖等价
依赖闭包相等
例:关系模式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的分解特性。
, Rk 是R
例:设关系模式R(ABCD),R分解成 {AB, BC, CD} 。如果R上成立的函数依赖 集 F1 {B A, C D},那么ρ 相对于F 是否无损分解?如果R上成立的函数依赖集 1 F2 {A B, C D} 呢? (1)构建一张k行n列的表格,每 列对应一个属性 A j 1 j n ,每行 对应一个模式 R i 1 i K 。如 果 A j在 R i 中,那么在表格的第i行 第j列处填上符号 a j ,否则填上 bij。 A B C D
无损分解
设R是一个关系模式,F是R上的一个FD集。R分解成数 , Rk 。如果对R中满足F的每一个关系r, 据库模式 R1, 都有
R=∏R1(r) ∏R2(r) …… ∏Rk(r)
那么称ρ相对于F是“无损分解”,否则称“损失分解”。
无损分解的测试方法
An ,F是R上成立的函数依赖集, R1, 关系模式 R A 1 的一个分解。判断ρ 相对于F是否具有无损分解特征。
分解成3NF模式集既无损 又保持函数依赖的方法
① 对于关系模式R和R上成立的FD集F,先求出F的最小依赖集,然后再把最小依 赖集中那些左部相同的FD用合并性合并起来。 ② 对最小依赖集中每个FD X→Y去构成一个模式XY。 ③ 在构成的模式集中,如果每个模式都不包含R的候选键,那么把候选键作为一 个模式放入模式集中。
, Rk 是R的一个分解,F是R上的FD集,如果有 定义:设 R1,
那么称分解ρ 为保持函数依赖集F。
k i=1
k i=1
π R1 F |=F ,
π R1 F |=F
k
保持函数依赖情况有:
F|=
i=1
π R1 F
k + π F R1 =F i=1
AB BC CD
a1
a2
b13 a3 a3
b14 b24 a4
b 21 a 2 b31 Fra Baidu bibliotek32
无损分解的测试方法
(2)把表格看成模式R的一个关系,反复检查F中每个FD在表格中是否成立, 若不成立,则修改表格中的值。修改方法如下: 对于F中一个FD X Y ,如果表格中有两行在X值上相等,在Y值上不相等, ai 那么把这两行在Y值上也改成相等的值。如果Y值中有一个是 ,那么另一 aj aj bij 个也改成 ;如果没有 ,那么用其中一个 替换另一个值(尽量把下标 ij改成较小的数)。一直到表格不能修改为止。 (3)若修改的最后一张表格中有一行全 是a,即 a1a 2 a n ,那么称ρ 相对于F 是无损分解,否则称有损分解。 A B C D
AB BC CD
a1
a2
b13 a3 a3
b14 a4 a4
b 21 a 2 b31 b32
(b)
此时表格(b)中没有一行是全a行,因此相对于 F2 ,R分解成ρ 是损失分解。
保持函数依赖的分解
定义:设F是属性集U上的FD集,Z是U的子集,F在Z上的投影用 z F 表示, 定义为:
z F {X Y|X Y F+ , 且XY Z}
保持函数依赖的模式分解
设关系模式R<U,F>被分解为若干个关系模式 R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn> (其中U=U1∪U2∪…∪Un,且不存在Ui Uj,Fi为F 在Ui上的投影),若F所逻辑蕴含的函数依赖一定
也由分解得到的某个关系模式中的函数依赖Fi所逻
辑蕴含,则称关系模式R的这个分解是保持函数依
AB BC 所以相对与 F1 ,R分解成ρ 是无损分解。 CD
a1 a1
a2 a2
b13 a3 a3
b14 a4 a4
b31 b32
无损分解的测试方法
相对于F 2 ,Chase过程如下:
A
B
C
D
A
B
C
D
AB BC CD
a1
a2
b13 a3 a3
b14 b24 a4
b 21 a 2 b31 b32
(a)
+
具有无损连接性的模式分解
关系模式R<U,F>的一个分解 ρ={ R1<U1,F1>, R2<U2,F2>, …,Rn<Un,Fn>} 若R与R1、R2、…、Rn自然连接的结果相等,则称关 系模式R的这个分解ρ具有无损连接性(Lossless join)
具有无损连接性的分解保证不丢失信息 无损连接性不一定能解决插入异常、删除异常、修改复 杂、数据冗余等问题