自然連接

應用於資料庫的等值連接

自然連接(Natural join)是一種特殊的等值連接,它要求兩個關係中進行比較的分量必須是相同的屬性組,並且在結果中把重複的屬性列去掉。而等值連接並不去掉重複的屬性列。

R⋈S|

定義:自然連接是關係R和S在所有公共屬性(common attribute)上的等接(Equijoin)。但在得到的結果中公共屬性只保留一次,其餘刪除。

R⋈S ≡ ΠR u S( δ predicate(R x S))

定義


在連接運算當中,一種最常用的連接是自然連接。如果關係R與S具有相同的屬性組B,且該屬性組的值相等時的連接稱為自然連接,結果關係的屬性集合為R的屬性並上S減去屬性B的屬性集合。
R和S自然連接可記作:R⋈S={t ⌒t |t∈R∧t∈S∧t[B]=t[B]}
自然連接也可看作是在廣義笛卡爾積R×S中選出同名屬性上符合相等條件元組,再進行投影,去掉重複的同名屬性,組成新的關係。

與等值連接的區別

1. 等值連接中不要求屬性值完全相同,而自然連接要求兩個關係中進行比較的必須是相同的屬性組(屬性名可以不同),即要求必須有相同的值域
2. 等值連接不將重複屬性去掉,而自然連接去掉重複屬性,也可以說,自然連接是去掉重複列的等值連接。

外連接

如果把捨棄的元組也保存在結果關係中,而在其他屬性上空值,那麼這種連接就叫外連接。如果只把左邊關係R要捨棄的元組保留就叫左外連接,如果只把右邊關係S中要捨棄的元組保留右外連接。

示例


現有a和b兩表分別為關係R和S關係。
(a)關係R
ABC
a1b15
a1b16
a2b28
a2b212
(b)關係S
BD
b13
b27
b310
b32
b45
下表為自然連接計算的結果關係R⋈S
R⋈S
ABCD
a1b153
a1b163
a2b287
a2b2127