为什么这些样本关系有很多有效连接但只有一个组合?

问题描述 投票:0回答:1

我正在尝试理解一篇介绍关系数据库的论文中的一些主张。参考:https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf

首先,作者声称某些示例关系具有多个连接但只有一个组合(参见文章中的第385页)。

为什么会这样?我想知道因为 R * S 的子集是有效的连接,但 R 的情况并非如此。 S.我不明白,因为可以采用 R 的有效子集。 S 与 R * S 的方式相同。参见下面的示例:

The tables:

R 
1 a  
1 b
1 c
2 c
2 d
2 e

S 

a  g
b  f
c  f
c  g
d  g
e  f

R * S (the natural join, as the author calls it, and a subset of this would be a valid join as well)

1 a g  
1 b f
1 c f
1 c g
2 c f
2 c g
2 d g
2 e g 

R . S (the natural composition, but the author claims there is only one composition despite the existence of multiple valid joins.)

1 f
1 g
2 f
2 g

第二,与第一个问题无关:论文中是否有勘误表? (参见第 384 页),其中关系 T 包含重复行?

join relational-database relational-algebra natural-join
1个回答
0
投票

如果 TRS 的组合,则根据定义,存在 RS 的某些连接 U,使得 T = π₁₃(U) ).

所以,让我们考虑加入 U

根据定义,π₁ς(U) = Rπ2₃(U) = S

因此,由于 R 包含对 (1, a) 并且没有其他 (_, a) 形式的对,因此 U 必须至少包含一个 (1, a, _) 形式的三元组且没有其他形式(_, a, _) 形式的三元组。同样,由于 S 包含 (a, g) 对,并且不包含 (a, _) 形式的其他对,因此 U 必须包含至少一个 (_, a, g) 形式的三元组,并且不包含其他三元组形式为 (_, a, _)。因此 U 必须包含三元组 (1, a, g),并且 T = π₁₃(U) 必须包含对 (1, g)。

并且,同样对于自然组合中的每一对其他R·S:对于每个这样的对p,没有办法构造一个连接U使得π₁当(U)= Rπ2₃(U) = Sp ∉ π₁₃(U)。

所以T = R·S

© www.soinside.com 2019 - 2024. All rights reserved.