自然連接
應用於資料庫的等值連接
自然連接(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 | ||
---|---|---|
A | B | C |
a1 | b1 | 5 |
a1 | b1 | 6 |
a2 | b2 | 8 |
a2 | b2 | 12 |
(b)關係S | |
---|---|
B | D |
b1 | 3 |
b2 | 7 |
b3 | 10 |
b3 | 2 |
b4 | 5 |
下表為自然連接計算的結果關係R⋈S
R⋈S | |||
---|---|---|---|
A | B | C | D |
a1 | b1 | 5 | 3 |
a1 | b1 | 6 | 3 |
a2 | b2 | 8 | 7 |
a2 | b2 | 12 | 7 |