3.9(关系)模式的分解分解的定义:关系模式R<U,F>的一个分解是指ρ={R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>}其中U=U1∪U2∪…∪Un,并且不存在UiUj,1≤i,j≤n,Fi是F在Ui上的投影。函数依赖集合{X→Y|X→Y∈F+∧XYUi}的一个覆盖(等价)Fi叫做F在属性Ui上的投影。3.9模式的分解3.9.1关系模式分解的标准•把低一级的关系模式分解为若干个高一级的关系模式的方法并不是唯一的•只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义“等价”概念的三种定义:(1)分解具有无损连接性。(2)分解要保持函数依赖性。(3)分解既要保持函数依赖,又要具有无损连接性。3.9.2无损分解无损分解定义:关系模式R<U,F>的一个分解ρ={R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>},对于R的任一关系r,都有r为其在各Ui(1=1,…,n)上的投影的(自然)连接,即r=πU1(r)⋈πU2(r)…π⋈⋈Un(r),则称关系模式R的这个分解ρ具有无损连接性(Losslessjoin)。•具有无损连接性的分解保证不丢失信息。•无损连接性不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题。3.9.2无损分解(续)例:S-L(Sno,Sdept,Sloc)F={Sno→Sdept,Sdept→Sloc,Sno→Sloc}S-L∈2NF,分解方法可以有多种:1.S-L分解为三个关系模式:SN(Sno),SD(Sdept),SL(Sloc)2.SL分解为下面二个关系模式:NL(Sno,Sloc),DL(Sdept,Sloc)3.将SL分解为下面二个关系模式:ND(Sno,Sdept),NL(Sno,Sloc)3.9.2无损分解(续)第3种分解方法具有无损连接性。问题:(1)没有保持原关系中的函数依赖,即S-L中的函数依赖Sdept→Sloc没有投影到关系模式ND、NL上。(2)存在冗余和操作异常。3.9.2无损分解(续)4.将SL分解为下面二个关系模式:ND(Sno,Sdept),DL(Sdept,Sloc)该分解保持了函数依赖(且具有无损连接性)。3.9.3保持函数依赖的模式分解定义:设关系模式R<U,F>被分解为若干个关系模式R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>其中U=U1∪U2∪…∪Un,且不存在UiUj,Fi为F在Ui上的投影),若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖Fi所逻辑蕴含,则称关系模式R的这个分解是保持函数依赖的(Preservedependency)。3.9.3保持函数依赖的模式分解(续)例如,将S-L(Sno,Sdept,Sloc)F={Sno→Sdept,Sdept→Sloc,Sno→Sloc}分解为下面二个关系模式(第四种分解):ND(Sno,Sdept),DL(Sdept,Sloc)该分解保持了函数依赖(具有无损连接性)。3.9.3保持函数依赖的模式...