Life is fantastic

Life

模式分解

2024-04-07
模式分解

概念


范式之间的转换一般是通过拆分属性,即模式分解,将具有部分函数依赖和传递依赖的属性分离出来,来达到一步步优化,一般分为以下两种:

  1. 保持函数依赖分解

    对于关系模式R,有依赖集F,若对R进行分解,分解出来的多个关系模式,保持原来的依赖集不变,则为保持函数依赖的分解。另外,注意要消除掉余依赖(如传递依赖)。

    实例:设原关系模式R(A,B,C),依赖集F(A->B,B->C,A->C),将其分解为两个关系模式R1(A,B)和R2(B,C),此时R1中保持依赖A->B,R2保持依赖B->C,说明分解后的R1和R2是保持函数依赖的分解,因为A->C这个函数依赖实际是一个余依赖,可以由前两个依赖传递得到,因此不需要管。

  2. 无损分解
    无损分解:分解后的关系模式能够还原出原关系模式,就是无损分解,不能还原就是有损。

    定理:如果R的分解为p={R1,R2),F为R所满足的函数依赖集合,分解p具有无损连接性的充分必要条件是R1nR2->(R1-R2)或者R1nR2->(R2-R1)。

    PS:分解三个以上关系模式时,通过表格发求解,如图:

考试真题

1.候选关键字的判断:直接找→右边没出现过的元素,此处CD没出现过,其次判断CD能否推断出ABE,满足条件第一个空选A

2.直接看R1∩R2→R1-R2或R1∩R2→R2-R1,本题R1∩R2为C,R1-R2为ABE,根据题干无法得出C→ABE,所以为有损分解,在判断是否保持函数依赖,R1,R2包含有B→A,A→E,AC→B,没有保留D→A依赖,所以第二个空选D