现在的位置: 首页 > 综合 > 正文

等值连接和自然连接

2013年08月31日 ⁄ 综合 ⁄ 共 719字 ⁄ 字号 评论关闭

 

等值连接:“=”的连接

 

自然连接:在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉。即如果R与S具有相同的属性组Y,则自然连接可记作:
     R*S={t r⌒ts |tr∈R∧ts∈S∧tr[Y]=ts[Y]}

自然连接是在广义笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。

 

表:Table_1

A B C
1 a1 b1 2
2 a1 b2 4
3 a2 b3 6
4 a2 b4 8

表:Table_2

B D
1 b1 5
2 b2 6
3 b3 7
4 b3 8

 

等值连接

select *
from Table_1 t1, Table_2 t2
where t1.C = t2.D

A t1.B C t2.B D
1 a2 b3 6 b2 6
2 a2 b4 8 b3 8

 

select *
from Table_1 t1, Table_2 t2
where t1.B = t2.B

A t1.B C t2.B D
1 a1 b1 2 b1 5
2 a1 b2 4 b2 6
3 a2 b3 6 b3 7
4 a2 b3 6 b3 8

自然连接

A B C D
1 a1 b1 2 5
2 a1 b2 4 6
3 a2 b3 6 7
4 a2 b3 6 8

 

即:(如果看不到图,请参照相册《等值连接和自然连接》)

 

 

 结合上例,我们可以看出等值连接与自然连接的区别:

     1. 等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。如上例R中的C列和S中的D列可进行等值连接,但因为属性名不同,不能进行自然连接。

     2. 等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。如上例R中的B列和S中的B列进行等值连接时,结果有两个重复的属性列B,而进行自然连接时,结果只有一个属性列B。

抱歉!评论已关闭.