關系代數是早期的、原理性的、抽象的。
現在用的是商用的sql語言。當DBMS內部處理時,會將其轉換成關系代數或相似的內部表現形式。
關系代數
- 傳統的集合運算:並、差、交
- 投影、選擇
- 笛卡爾積、連接
- 重命名
什么是關系代數
- 是一種抽象的數據查詢語言
- 用對關系的運算來表達查詢
- 運算對象和運算結果是關系
關系運算符分類
1.傳統的集合運算:並、交、差
2.投影和選擇
- 投影(Projection)
從關系R中選出若干屬性列組成新的關系。

投影運算實例:

這里注意去掉重復的元組。

- 選擇(Selection)
從關系R中選出滿足給定條件的元組組成新的關系。

思考:選擇運算為何無需去除重復元組?
答案:因為經選擇運算,列數不變,即結果關系必然包含主鍵,自然不存在重復元組。
選擇運算實例:


多條件選擇:

選擇+投影:

3.笛卡爾積,連接
- 笛卡爾積

實例:

- 連接(Join)
先作笛卡爾積,再選擇。

- 等值連接

- 自然連接


自然連接最為常用,與普通連接有區別。

注意:如果兩個關系有多個公共屬性,作自然連接時,必須所有公共屬性都相等。
