6.4.1模式分解的三个定义对一个模式的分解是不难一的,但是分解前参见P188后的两个模式应等价。对“等价”的概念有三种不同的定义(也称分解的标准、分解的特性或分解的目标):1. 分解具有无损连接性(Lossless join);2.分解要保持函数依赖(Preserve dependency3.分解既要保持函数依赖,又要具有无损连接性。11
11 6.4.1 模式分解的三个定义 对一个模式的分解是不唯一的,但是分解前 后的两个模式应等价。 参见P188. 对“等价”的概念有三种不同的定义(也称分 解的标准、分解的特性或分解的目标): 1. 分解具有无损连接性(Lossless join); 2.分解要保持函数依赖(Preserve dependency) 3. 分解既要保持函数依赖,又要具有无损连 接性
模式分解的三个定义按照不同的分解准则,模式所能达到的分离程度各不相同,各种范式就是对分离程度的测度。进一步讨论:■(1)“无损连接性”和“保持函数依赖”的含义?如何判断?(2)对不同的分解等价定义,分离后的关系模式的范式级别。(3)如何实现分离,分解的算法。12
12 模式分解的三个定义 按照不同的分解准则,模式所能达到的分离程 度各不相同,各种范式就是对分离程度的测度。 进一步讨论: (1) “无损连接性”和“保持函数依赖”的含 义? 如何判断? (2) 对不同的分解等价定义,分离后的关系 模式的范式级别。 (3) 如何实现分离,分解的算法
模式分解中的问题:有损分解R(A, B, C)IIAB(R)IIBc(R)IIAB(R)IBc(R)ABcABBcABc22121111111122122222无损分解R(A, B, C)IIAB(R)IBc(R)IIAB(R)Bc(R)AccABcBABB11111111112221211211211212有损分解
模式分解中的问题: 有损分解 R(A, B, C) A B C 1 1 2 2 2 1 A B 1 1 2 2 B C 1 2 2 1 A B C 1 1 2 2 2 1 ∏AB(R) ∏BC(R) ∏AB(R) ∏BC(R) R(A, B, C) A B C 1 1 1 2 1 2 A B 1 1 2 1 B C 1 1 1 2 A B C 1 1 1 1 1 2 2 1 1 2 1 2 ∏AB(R) ∏BC(R) ∏AB(R) ∏BC(R) 有损分解 无损分解
模式分解中的问题:不保持函数依赖(A→B, B → C)cABAB该分解保cb1c1a1a1持A→B,b1c1c1a2b1各列值a2而不保持Bb2c2b2c2a3a3→C,但b3c1a4a4b3是是无损连接(A→B}cAcABABc1b1a1b1c1a1a1c1b1c1a2a2a2b1分解Xb2c2b2c2a3a3a3c1b3a4a4b3c1a4将违反若插入a5c3b3c3a5b3a5B→C
模式分解中的问题: 不保持函数依赖 A B C a1 b1 c1 a2 b1 c1 a3 b2 c2 a4 b3 c1 {A B, B C} A a1 a2 a3 a4 B b1 b2 b3 C c1 c2 各列值 A B a1 b1 a2 b1 a3 b2 a4 b3 A C a1 c1 a2 c1 a3 c2 a4 c1 = A B C a1 b1 c1 a2 b1 c1 a3 b2 c2 a4 b3 c1 分解 若插入 将违反 B C 该分解保 持A B, 而不保持B C,但 是是无损 连接 { A B } a5 b3 a5 c3 a5 b3 c3
模式分解中存在的问题例cAB(B→C}该分解保持Acc1a1b1cBB→C, 而a1c1b3c1a1b1c1不保持A一→Ba2c1a2b1c1b2c2且是有损分c2a3b3c1a2解b3c1c1a4b2c2a3b1c1a4c1a4b3(A→B)(B→C}该分解保ABABcBc持函数依b1b1c1a1a1b1c1赖,且是无b1c1a2a2b1b2c2损分解b2b2c2a3a3b3c1b3b3c1a4a415
15 模式分解中存在的问题: 例 A B a1 b1 a2 b1 a3 b2 a4 b3 B C b1 c1 b2 c2 b3 c1 A C a1 c1 a2 c1 a3 c2 a4 c1 B C b1 c1 b2 c2 b3 c1 = = A B C a1 b1 c1 a1 b3 c1 a2 b1 c1 a2 b3 c1 a3 b2 c2 a4 b1 c1 a4 b3 c1 A B C a1 b1 c1 a2 b1 c1 a3 b2 c2 a4 b3 c1 该分解保持 B C,而 不保持A B, 且是有损分 解 该分解保 持函数依 赖, 且是无 损分解 { B C } { A B } { B C }