模式分解中的问题1实例1表(职工,级别,工资)可以有两种分解途径,分解一:(职工,工资),(工资,级别)分解二:(职工,级别),(级别,工资)都满足第三范式,BC范式,第四范式。6
6 模式分解中的问题 实例1 表(职工,级别,工资)可以有两种分解途径, 分解一:(职工,工资),(工资,级别) 分解二:(职工,级别),(级别,工资) 都满足第三范式,BC范式,第四范式
模式分解中存在的问题R(A, B,C)IIAB(R)IIBc(R)IIAB(R)XBc(R)BBABcACAB211111112121222无损分解如何解决有损分解的问题?R(A, B, C)RXRBcABBA1111112212121121211有损分解2127
7 模式分解中存在的问题 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) 有损分解 无损分解 如何解决有损分解的问题?
思考有损分解的问题出在什么地方?如何解决?数据依赖?---我们不是已经设法消除了?■有必要进一步研究属性之问的依赖关系。关系模式的数据依赖是重要组成部分:R(U,F):F是R的所有给定的依赖可能还会有一些由F导出的依赖8
8 思考 有损分解的问题出在什么地方?如何解决? 数据依赖?-我们不是已经设法消除了? 有必要进一步研究属性之间的依赖关系。 关系模式的数据依赖是重要组成部分: R(U,F):F是R的所有给定的依赖 可能还会有一些由F导出的依赖
*6.4模式的分解16.4.1模式分解的三个定义,分解的目标:无损连接分解、保持函数依赖、达到更高级范式6.4.2分解的无损连接性和保持函数依赖性■判别无损连接的充要条件判别分解是否保持函数依赖的方法16.4.3模式分解的算法■转换为3NF的保持函数依赖的分解■转换为3NF的既无损连接又保持函数依赖的分解■转换为BCNF的无损连接分解■达到4NF的具有无损连接性的分解
*6.4 模式的分解 6.4.1 模式分解的三个定义 分解的目标:无损连接分解、保持函数依赖、达 到更高级范式 6.4.2 分解的无损连接性和保持函数依赖性 判别无损连接的充要条件 判别分解是否保持函数依赖的方法 6.4.3 模式分解的算法 转换为3NF的保持函数依赖的分解 转换为3NF的既无损连接又保持函数依赖的分解 转换为BCNF的无损连接分解 达到4NF的具有无损连接性的分解
模式的分解:两个记号参见P188.定义6.16 关系模式R<U,F>的一个分解是指:p =[Ri<Ui,Fi>,R2<U2,F2>,...,Rn<Un,Fn>]其中U= Ui,并且没有UiUj,1<i,j<n,Fi是F在Ui上的投影。函数依赖集合F; = X→>YIX→>YEF+定义6.17^XY二Ui,称为F在Ui上的投影。10
10 模式的分解:两个记号 参见P188. 定义6.16 关系模式R<U, F>的一个分解是指: = {R1<U1 , F1>, R2<U2 , F2>, . ,Rn<Un , Fn>} 其中U = Ui ,并且没有Ui Uj , 1≤i,j ≤n, Fi是F在Ui上的投影。 定义6.17 函数依赖集合Fi = {XY | XYF+ XY Ui},称为F在Ui上的投影。 i 1 ∪ n =