日期:2014-05-16  浏览次数:20474 次

等值连接和自然连接

1.首先

元组:关系中的行

属性:关系中的列

关系运算:

R(A,B,C,D) 、S(B,C,Y,Z)为两个关系;

选择[取得关系R中符合条件的元组]、

投影[取得关系R某几个属性列组成新的关系]、

连接[RxS的笛卡尔积中选取属性间满足条件元组]

?

等值连接:关系R、S,取两者笛卡尔积属性值相等的元组,比如

R.A=S.B

R.B=S.B

自然连接:是一种特殊的等值连接,它要求比较的属性列必须是相同的属性组,并且把结果重复属性

?

举例:两个关系R、S

?

R(A,B,C)关系:

(a1,b1,5)
(a1,b2,6)
(a2,b3,8)
(a2,b4,12)

S(B,E)关系:

(b1,3)
(b2,7)
(b3,10)
(b3,2)
(b5,2)

?

R和S在R.B=S.B上等值连接结果

(A,     R.B,   C,     S.B,    E)
(a1,   b1,     5,      b1,      3)
(a1,   b2,     6,      b2,      7)
(a2,   b3,     8,      b3,      10)
(a2,   b3,     8,      b3,      2)

?R和S自然连接结果:

(A,    B,      C,     E)
(a1,   b1,     5,     3)
(a1,   b2,     6,     7)
(a2,   b3,     8,     10)
(a2,   b3,     8,     2)

?

[备注]

连接操作的过程:

表1中取第一个元组,扫描表2,符合条件,则元组拼接,存入结果表;

表1中取第二个元组,扫描表2,符合条件,则元组拼接,存入结果表;

......

直到表1最后条元组比较完毕。

?

例子摘自清华大学出版社 王珊 陈红的《数据库系统原理教程》第50页。