18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 模式分解(数据库)

模式分解(数据库)

时间:2022-11-03 10:30:02 | 来源:信息时代

时间:2022-11-03 10:30:02 来源:信息时代

    模式分解 : 将一个关系模式或函数依赖模式分为几个更小的关系模式或函数依赖模式,并且原模式上的关系也通过投影分为几个更小的关系的理论与方法。
模式分解主要研究怎样的分解能够使分解后的关系连接后仍是原关系(这种分解称为无损连接的分解)以及怎样的分解能够使分解后的关系仍保持原关系的全部函数依赖(这种分解称为无损依赖的分解)。
对无损连接的分解的研究始于1978年,由Aho、Beeri、Ulman等人提出了最初的追赶算法,用这种算法可测试一个分解是否是无损连接的。1979年,Maier、Mendelzon及Sagiv推广了这个算法。1981年,Googman、Shmueli给出了广义依赖形式的追赶算法。无损依赖分解的测试实际是函数依赖集合间的等价的测试。
模式分解的形式化定义是:
设R是一个关系模式,若R1∪…∪Rn=U,且i≠j时Ri≠Rj(1≤i,j≤n),则称p={R1,…,Rn}是关系模式R的一个分解。
设(R,∑)是一个函数依赖模式,若p={R1,…,Rn}是R的一个分解, 而∑i={X→Y|∑⊧X→Y, 且X∪YR j}(i=1,…,n),则μ={(R1,∑1),…,(Rn,∑n)}是函数依赖模式(R,∑)的一个分解。
若R上的每个关系r, 都有r=r[R1]⋈r[R2]⋈…⋈r[Rn],则称ρ是(R,∑)的无损连接的分解,若∑*=(R1∪…∪Rn),则称μ是(R,∑)的无损依赖的分解(∑*请参看函数依赖条目)。
(R,∑)及R的一个分解ρ={R1,…,Rn}是否无损连接的分解可用以下方法判定:
首先根据ρ建立一个称为原始造型表的R上的一个关系T0:
T0有n个元组,即T0={u1,…,un}。对于R={A1,…,Am},我们令


并称aj(1≤j≤m)为识别符号,bij(1≤i≤n,1≤j≤m)为非识别符号。
若已得出造型表Tk(k=0,1,2,…),则对∑中的每个函数依赖X→Y做以下操作: 当ui1[X]=ui2[X]=…=uip[X]时,对每个Aj∈Y做如下的代换:
当aj∈{ui1[Aj],…,uip[Aj]}时,ui1[Aj]=ui2[Aj]=…=uip[Aj]=aj
当aj∉{ui1[Aj],…,uip[Aj]}时,ui1[Aj]=ui2[Aj]=…=uip[Aj]=bhj,且h=min(i1,…,ip)并检查Tk[Aj]中所有元素,若有与某个uit[Aj]相同者(1≤t≤p),则也将其代换为bhj
进行以上操作后形成造型表Tk+1
若Tk+1中有一行为〈a1,a2,…,am〉,则分解是无损连接的。
若Tk+1中没有一行为〈a1,a2,…,am〉,则检查Tk+1与Tk有没有什么不同,若有不同,则对Tk+1再做前面对Tk所做的那些工作; 若无不同,则分解不是无损连接的。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭