18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 连接依赖(数据库)

连接依赖(数据库)

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

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

    连接依赖 : 关系数据库中的一个非常重要的数据约束。它给出了关系模式中属性间连接语义的函数关系。连接依赖是由Rissanen在1978年引入的。
设R是一个关系模式,ρ={X1,…,Xn},其中:XiR(i=1, …, n), 则记号⋈[ρ]或者X1⋈…⋈Xn就表示R上的一个连接依赖。若r是R上的关系,且只要r中有n个元组u1,…,un(不必互不相同)适合ui[Xi∩Xj]=uj[Xi∩Xj](1≤i,j≤n),那么r中就一定还有一个元组u,满足u[Xi]=ui[Xi](i=1,…,n),则称r适合连接依赖⋈[ρ], 或称连接依赖⋈[ρ]在r中成立,记作r⋈[ρ]。若X1∪…∪Xn=R则称⋈[ρ]为全连接依赖, 若X1∪…∪Xn⊂R则称⋈[ρ]为嵌入的连接依赖。例如,设R={A,B,C},r是R上的关系,如表1所示。

表1 关系模式R上的关系r


ABC
111
122
333
434
555
665


由表2及表3可以看出,r适合连接依赖AB⋈AC⋈BC, 或称适合连接依赖⋈[{AB, AC,BC}]。

表2 关系r的投影


r1r2r3
ABACBC
111111
121222
333333
434434
555555
666565


表3 三个关系的连接



在这个例中我们还看到,这里的r不合适任何多值依赖及任何函数依赖,因而R分解成三个(或四个、五个…)模式时,r分解的无损连接性质就需要一种新的依赖,即连接依赖,来表征。这样,由此也看出连接依赖是一个非常重要的新的数据约束。
而另一方面,因为我们在一个关系模式R的关系r适合多值依赖X→→Y的定义中,如果令R1=X∪Y,R2=R-Y,既是令R1∩R2=X,R1-R2=Y,则关系r适合多值依赖X→→Y就等价于r=r[X∪Y]⋈r[X-Y](关系r适合多值依赖的定义请见多值依赖条目), 而r=r[X∪Y]⋈r[X-Y]就正是r适合连接依赖(X∪Y)⋈(R-Y), 所以多值依赖是连接依赖的特殊情况。当然,由前述已知函数依赖也可看作是特殊的多值依赖(请参看多值依赖条目),所以函数依赖,也可看作是连接依赖的特例。
设R是一个关系模式,∑是R上的一个连接依赖的集合(∑中可包括作为连接依赖特殊情况的多值依赖及函数依赖),则二元组(R,∑)称为一个连接依赖模式。若r适合∑中的每一个依赖,则称r适合∑,记作r⊧∑, 也记作r⊧(R,∑)。(R,∑)是一个连接依赖模式,ρ={X1, …,Xn},XiR(i=1, …, n),若对任何适合(R,∑)的关系r,都有r⊧⋈[ρ],则称∑蕴涵⋈[ρ], 记作∑⋈[ρ]。
与函数依赖及多值依赖一样,完全连接依赖的蕴涵也有推导的公理系统。在给出这个公理系统以前,我们首先规定一些记号,若R是一个关系模式,ρ={X1,…,Xn}, XiR(i=1, …,n)。用记号atter(ρ)表示Xi; 用省略{}的记号:⋈[X1, …,Xn]表示⋈[{X1, …,Xn}](即⋈[ρ]); 还将⋈[ρ∪{X,Y}]简记作⋈[ρ, X ,Y]。
按照以上这些记号,完全连接的推导公理系统如下:
JD0:∅⊧⋈[X], 对任何XR成立。
JD1:⋈[ρ]⊧⋈[ρ,Y], 当Yatter(ρ)。
JD2:⋈[ρ, Y, Z]⊧⋈[ρ, YZ]。
JD3: {⋈[ρ, Y],⋈[ρ1]}⊧⋈[ρ,ρ1],当atter(ρ1)=Y。
JD4:⋈[ρ1,YA],⊧⋈[ρ1,Y],当A∉atter(ρ1)。
其中,
ρ={X1, …,Xn}, XiR, i=1, …, n。
ρ1={X1′, …,Xm′},Xi′R, i=1, …, m。
X, Y, ZR, A∈R, atter(ρ)=R。
这个公理系统的有效性很易证明,但该系统不完备。

74
73
25
news

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

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