關係數據庫的關係代數運算符有8種,分爲兩大類,如下表所示:
分類 | 運算符 | 含義 |
---|---|---|
傳統關係運算符 | 並 | |
差 | ||
交 | ||
笛卡爾積 | ||
專用關係運算符 | σ | 選擇 |
∏ | 投影 | |
⋈ | 連接 | |
÷ | 除 |
1 傳統的關係運算
傳統的集合運算是二元運算,包括並、差、交、笛卡爾積4種運算。設有兩關係R、S。
1.1 並 union
關係R與關係S的並記作:即合併R和S所有元組
1.2 交 intersection
關係R與關係S的交記作:關係的交也可用差來表示:即取出R與S中共有的元組
1.3 差 except
關係R與關係S的差記作:即去掉R中屬於S的元素
1.4 笛卡爾積 cartesian product
關係R與關係S的並記作:這裏的笛卡爾積指的是廣義笛卡爾積,對元組進行笛卡爾積有點類似於小學數學課上學過的握手遊戲。
對於來說,表示每個R中的元組都要與S中的元組連接一次
1.5 傳統關係運算舉例
設:
color | pattern | size |
---|---|---|
紅 | A | 5 |
紅 | B | 10 |
藍 | B | 5 |
:
color | pattern | size |
---|---|---|
紅 | B | 10 |
紅 | C | 10 |
藍 | B | 5 |
則有:
- 與的並:
color | pattern | size |
---|---|---|
紅 | A | 5 |
紅 | B | 10 |
藍 | B | 5 |
紅 | C | 10 |
- 與的交:
color | pattern | size |
---|---|---|
紅 | B | 10 |
藍 | B | 5 |
- 與的差:
color | pattern | size |
---|---|---|
紅 | A | 5 |
- 與的笛卡爾積:
R.color | R.pattern | R.size | S.color | S.pattern | S.size |
---|---|---|---|---|---|
紅 | A | 5 | 紅 | B | 10 |
紅 | A | 5 | 紅 | C | 10 |
紅 | A | 5 | 藍 | B | 5 |
紅 | B | 10 | 紅 | B | 10 |
紅 | B | 10 | 紅 | C | 10 |
紅 | B | 10 | 藍 | B | 5 |
藍 | B | 5 | 紅 | B | 10 |
藍 | B | 5 | 紅 | C | 10 |
藍 | B | 5 | 藍 | B | 5 |
2 專用的關係運算
專用的關係運算符包括選擇、投影、連接、除運算
在具體介紹運算符之前爲了方便表達,先引入幾個符號:
- :關係。,其中表示中的列。類似的,等符號也代表一個關係
- :元組。代表的某一行,稱爲元組。
- :分量。表示行中列的值,稱爲分量。
- :象集。表示行中除列外其他列的值,稱爲象集。
- :比較運算符。比較運算符有6種,分別是、、、、、
2.1 選擇 selection
選擇關係運算記作:即取出表中列的值與具有關係的行
例如:
表示取出表中列值小於數值20的行
表示取出表中列值等於字符串李勇的行
2.2 投影 projection
投影關係運算記作:即取出表中的列
例如:
表示從表取出列形成新的關係
表示從表取出和列形成新的關係
2.3 連接 join
連接關係運算記作:即選取與的笛卡爾積中與滿足關係的行
連接有四種特殊形式:
- 非等值連接。就是指不爲等號的連接,例如表示連接滿足關係的與中的元組
- 等值連接。就是指爲等號的連接,例如表示連接滿足關係的與中的元組
- 自然連接。自然連接是一種特殊的等值連接,就是與的屬性名一致且值相等的等值連接,並在連接結果中去掉重複列,而在一般的等值連接中只需要滿足與的值相等即可,記作。
- 外連接。外連接是一種特殊的自然連接,在自然連接的過程中,若連接後元組裏的某個屬性出現Null值就會捨去該元組,而外連接則會保留該元組。外連接分爲三種:
- 1、外連接。保留兩邊關係自然連接後出現Null值屬性的元組,記作
- 2、左外連接。保留左邊關係自然連接後出現Null值屬性的元組,記作
- 3、右外連接。保留右邊關係自然連接後出現Null值屬性的元組,記作
2.4 除 division
除關係運算記作:即取出中使完全等於的元組
例如:
表示取投影中使完全等於的元組,形成新的關係
2.5 專用關係運算舉例
設:
color | pattern | size |
---|---|---|
紅 | A | 5 |
紅 | B | 6 |
藍 | C | 8 |
藍 | D | 12 |
:
pattern | weight |
---|---|
A | 3 |
B | 7 |
C | 10 |
C | 2 |
E | 2 |
- 的選擇,,取出表中列值爲字符串’紅’的行形成新的關係:
color | pattern | size |
---|---|---|
紅 | A | 5 |
紅 | B | 6 |
- 的投影,,從表取出列形成新的關係:
color | size |
---|---|
紅 | 5 |
紅 | 6 |
藍 | 8 |
藍 | 12 |
- 與的連接
非等值連接,,連接滿足關係的與中的元組
color | R.pattern | size | S.pattern | weight |
---|---|---|---|---|
紅 | A | 5 | B | 7 |
紅 | A | 5 | C | 10 |
紅 | B | 6 | B | 7 |
紅 | B | 6 | C | 10 |
藍 | C | 8 | C | 10 |
等值連接,,連接滿足關係的與中的元組
color | R.pattern | size | S.pattern | weight |
---|---|---|---|---|
紅 | A | 5 | A | 3 |
紅 | B | 6 | B | 7 |
藍 | C | 8 | C | 10 |
藍 | C | 8 | C | 2 |
自然連接,,連接與中同名屬性值相等的元組:
color | pattern | size | weight |
---|---|---|---|
紅 | A | 5 | 3 |
紅 | B | 6 | 7 |
藍 | C | 8 | 10 |
藍 | C | 8 | 2 |
外連接,,保留兩邊關係自然連接後出現Null值屬性的元組:
color | pattern | size | weight |
---|---|---|---|
紅 | A | 5 | 3 |
紅 | B | 6 | 7 |
藍 | C | 8 | 10 |
藍 | C | 8 | 2 |
藍 | D | 12 | null |
null | E | null | 2 |
左外連接,,保留左邊關係自然連接後出現Null值屬性的元組:
color | pattern | size | weight |
---|---|---|---|
紅 | A | 5 | 3 |
紅 | B | 6 | 7 |
藍 | C | 8 | 10 |
藍 | C | 8 | 2 |
藍 | D | 12 | null |
右外連接,,保留右邊關係自然連接後出現Null值屬性的元組:
color | pattern | size | weight |
---|---|---|---|
紅 | A | 5 | 3 |
紅 | B | 6 | 7 |
藍 | C | 8 | 10 |
藍 | C | 8 | 2 |
null | E | null | 2 |
- 的除運算
設有除關係
color | size |
---|---|
紅 | 5 |
紅 | 6 |
則表示取出中使完全等於、完全等於的元組
partten |
---|
A |