如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学消除非主属性对码的部分函数依赖消除非主属性对码的传递函数依赖消除函数依赖的决定因素(yīnsù)是非码规范化过程就是把一个关系模式分解为若干个关系模式,而且这种分解应该是可逆的。所谓可逆,是要求模式的分解是没有信息丢失,并保证分解后产生的关系模式集合和原来的关系模式等价。如何对关系模式进行分解才能保证没有信息丢失呢?对于同一个关系模式可能有多种分解方案(fāngàn)。下面的例子给出三种分解方案(fāngàn),如何判断哪种分解方案(fāngàn)更好呢?三种分解方案(模式(móshì)分解不唯一)snosno6.4.1模式分解的等价(děngjià)标准(1)无损连接的定义指的是对关系模式分解时,原关系模式下任一合法的关系实例在分解之后应能通过自然连接运算恢复(huīfù)起来。定义:设ρ={R1,R2,……,Rk}是关系模式R<U,F>的一个分解,如果对于R的任一满足F的关系r都有r=∏R1(r)∏R2(r)…∏Rk(r)则称这个分解ρ是满足依赖集F的无损连接。(2)验证无损连接(liánjiē)的充要条件如果R的分解为ρ={R1,R2},F为R所满足的函数依赖集合,则分解ρ具有无损连接(liánjiē)性的充分必要条件为R1∩R2→(R1-R2)∈F+或R1∩R2→(R2-R1)∈F+(3)无损连接的测试方法------表格法(算法6.2,P189)算法:检验无损连接性。输入:关系模式R(A1,A2,…,An),它的函数依赖集F以及分解ρ={R1,R2,…,Rk}。输出:确定ρ是否具有无损连接性。方法:①构造一个k行n列的表,第i行对应于关系模式Ri,第j列对应于属性Aj。如果Aj∈Ri,则在第i行第j列上放符号aj,否则放符号bij。②逐个检查F中的每一个函数依赖,并修改表中的元素。其方式如下:取F中一个函数依赖X→Y,在X的分量中寻找相同的行,然后将这些行中Y的分量改为(ɡǎiwéi)相同的符号,如果其中有aj,则将bij改为(ɡǎiwéi)aj;若无aj,则改为(ɡǎiwéi)bij(i是这些行的行号最小值)。③这样反复进行,如果发现某一行变成了a1,a2,…,ak,则分解ρ具有无损连接性;如果F中所有函数依赖都不能再修改表中的内容,且没有发现这样的行,则分解ρ不具有无损连接性。例:对给定的关系模式R(U,F),U={A,B,C,D,E},F={A→C,B→C,C→D,DE→C,CE→A},有如下的分解:ρ={AD,AB,BE,CDE,AE},判断(pànduàn)分解ρ是否无损。(3)根据C→D,对上表进行处理,由于属性列C上的第1,2,3,5是相同的符号b13,而D列的1,2,3,5行中有a4,所以(suǒyǐ)将D列的b24、b34、b54改为相同的符号a4,修改后的表如表1-3所示。(5)根据CE→A,将属性列A上的第3、4行改为(ɡǎiwéi)a1,修改后如表1-5所示。课堂练习:对给定的关系模式R(U,F),U={U,V,W,X,Y,Z},F={U→V,W→Z,Y→U,WY→X},现如下的分解:(1)ρ1={WZ,VY,WXY,UV}(2)ρ2={UVY,WXYZ}判断(pànduàn)上述分解是否具有无损连接性。6.4.3分解保持(bǎochí)函数依赖例:对给定的关系模式R(U,F),U={A,B,C,D},F={A→B,B→C,C→D,D→A},判断(pànduàn)关系模式R的分解ρ={AB,BC,CD}是否具有函数依赖保持性。前例:现有关系(guānxì)模式R(A,B,C),其上的函数依赖集F={A→B,C→B},判断ρ1={AB,AC},ρ2={AB,BC}是否保持函数依赖。说明:(1)分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。它们两者之间是没有联系的。具有无损连接性的分解不一定保持函数依赖,保持函数依赖的不一定具有无损连接性。例如上一例题的二种分解,一种具有无损连接性但没有保持函数依赖,另一种不具有无损连接性但保持了函数依赖。因此,关系模式的一个(yīɡè)分解可能是保持函数依赖的,可能是具有无损连接的,也可能是既具有无损连接性又保持函数依赖的。(2)若要求分解既具有无损连接性,又保持函数依赖,则模式分解可以达到3NF,但不一定能达到BCNF。6.4.3模式分解的算法算法1、把一个关系模式分解为3NF,使它具有无损连接性又具有依赖保持性。输入:关系模式R和R的最小依赖集Fm输出:R的一个分解ρ={R1,R2,…,Rk},Ri为3NF(i=1,…,k),ρ具有无损联接性和依赖保持性。方法(fāngfǎ):(1)如果Fm中只有一依赖X→A,且XA=R,则输出ρ=(R),则转(4)。(2)如果R中某些属性与F