当我们使用公共属性加入或交叉2个关系时会发生什么?

时间:2013-10-24 05:25:12

标签: relational-database relational-algebra

Relation 1 (r1):
ID | Name
1    John
2    Doe
3    Foo  

Relation 2 (r2):
ID | Name
4    Johnny
5    Doey
6    Fooey

r1 theta join(r1.ID = r2.ID) r2会产生什么结果?

r1 cross r2会产生什么结果?

我只是想知道结果关系是否应该将属性的名称更改为其他名称,因为每个属性有2个。

1 个答案:

答案 0 :(得分:1)

在关系代数中,产品(交叉连接)通常被理解为自然连接的特殊情况,其中连接关系恰好没有共同的属性。因此,如果A和B具有共同属性,则说A x B是没有意义的。如果A和B具有共同的属性,则A x B或者意味着A⋈B,或者意味着已经犯了错误,并且您的DBMS或解释器可能应该报告错误。

Theta join是自然连接的简写,后跟限制。如果theta表达式中的属性具有相同的名称,则必须先重命名某些属性。