關係代數是一種過程查詢語言,它提供了一步一步的過程來獲取查詢的結果。 它使用運算符來執行查詢。
關係操作的類型

1. 選擇操作
- 選擇(select)操作選擇滿足給定謂詞的元組。
- 它由西格瑪(σ)表示。
符號:  σ p(r)
其中:
- σ用於選擇預測
- r用於關係
- p用作命題邏輯公式,可以使用以下連接符:- AND OR和- NOT。這些關係可以用作關係運算符,如:- =,- ≠,- ≥,- <,- >和- ≤。
例如 : LOAN關係
| BRANCH_NAME | LOAN_NO | AMOUNT | 
|---|---|---|
| Downtown | L-17 | 1000 | 
| Redwood | L-23 | 2000 | 
| Perryride | L-15 | 1500 | 
| Downtown | L-14 | 1500 | 
| Mianus | L-13 | 500 | 
| Roundhill | L-11 | 900 | 
| Perryride | L-16 | 1300 | 
輸入:
σ BRANCH_NAME="perryride" (LOAN)
輸出:
| BRANCH_NAME | LOAN_NO | AMOUNT | 
|---|---|---|
| Perryride | L-15 | 1500 | 
| Perryride | L-16 | 1300 | 
2.專案操作
此操作顯示希望在結果中顯示的那些屬性的列表。其餘屬性從表中消除。
它用Π表示。
符號 : ∏ A1, A2, An (r)
其中,
A1,A2,A3用作關係r的屬性名稱。
示例 : 客戶關係
| NAME | STREET | CITY | 
|---|---|---|
| Jones | Main | Harrison | 
| Smith | North | Rye | 
| Hays | Main | Harrison | 
| Curry | North | Rye | 
| Johnson | Alma | Brooklyn | 
| Brooks | Senator | Brooklyn | 
輸入 -
∏ NAME, CITY (CUSTOMER)
| NAME | CITY | 
|---|---|
| Jones | Harrison | 
| Smith | Rye | 
| Hays | Harrison | 
| Curry | Rye | 
| Johnson | Brooklyn | 
| Brooks | Brooklyn | 
3.聯合操作
假設有兩個元組R和S。並集操作包含R或S中的所有元組或R&S中的兩個元組。
它消除了重複的元組。它使用∪表示。
符號 : R ∪ S
聯合操作必須符合以下條件:
- R和- S必須具有相同數量的屬性。
- 自動消除重複的元組。
示例:存款人關係
| CUSTOMER_NAME | ACCOUNT_NO | 
|---|---|
| Johnson | A-101 | 
| Smith | A-121 | 
| Mayes | A-321 | 
| Turner | A-176 | 
| Johnson | A-273 | 
| Jones | A-472 | 
| Lindsay | A-284 | 
借款人關係
| CUSTOMER_NAME | LOAN_NO | 
|---|---|
| Jones | L-17 | 
| Smith | L-23 | 
| Hayes | L-15 | 
| Jackson | L-14 | 
| Curry | L-93 | 
| Smith | L-11 | 
| Williams | L-17 | 
輸入:
∏ CUSTOMER_NAME (BORROW) ∪ ∏ CUSTOMER_NAME (DEPOSITOR)
輸出 -
CUSTOMER_NAME
----------------------------------------
Johnson
Smith
Hayes
Turner
Jones
Lindsay
Jackson
Curry
Williams
Mayes
4. 集合交集
假設有兩個元組R和S,集合交集操作包含R&S中的所有元組。
它用交叉∩符號表示。
 R ∩ S
示例: 使用上面的存款人(DEPOSITOR)表和借款人(BORROW)表
輸入:
∏ CUSTOMER_NAME (BORROW) ∩ ∏ CUSTOMER_NAME (DEPOSITOR)
輸出:
CUSTOMER_NAME
--------------------------------
Smith
Jones
5. 集合差集
假設有兩個元組R和S。集合交集操作包含R中但不在S中的所有元組。它由交叉減號( - )表示。
R - S
示例: 使用上面的存款人(DEPOSITOR)表和借款人(BORROW)表
輸入:
∏ CUSTOMER_NAME (BORROW) - ∏ CUSTOMER_NAME (DEPOSITOR)
輸出結果:
CUSTOMER_NAME
---------------------------
Jackson
Hayes
Willians
Curry
6. 笛卡爾積
笛卡爾積用於將一個表中的每一行與另一個表中的每一行組合。 它也被稱為交叉產生。
它用X表示。
E X D
示例:EMPLOYEE表
| EMP_ID | EMP_NAME | EMP_DEPT | 
|---|---|---|
| 1 | Smith | A | 
| 2 | Harry | C | 
| 3 | John | B | 
DEPARTMENT表
| DEPT_NO | DEPT_NAME | 
|---|---|
| A | Marketing | 
| B | Sales | 
| C | Legal | 
輸入:
EMPLOYEE X DEPARTMENT
輸出:
| EMP_ID | EMP_NAME | EMP_DEPT | DEPT_NO | DEPT_NAME | 
|---|---|---|---|---|
| 1 | Smith | A | A | Marketing | 
| 1 | Smith | A | B | Sales | 
| 1 | Smith | A | C | Legal | 
| 2 | Harry | C | A | Marketing | 
| 2 | Harry | C | B | Sales | 
| 2 | Harry | C | C | Legal | 
| 3 | John | B | A | Marketing | 
| 3 | John | B | B | Sales | 
| 3 | John | B | C | Legal | 
7. 重命名操作
重命名操作用於重命名輸出關係,它由rho(ρ)表示。
示例: 使用重命名運算符將STUDENT關係重命名為STUDENT1。
ρ(STUDENT1, STUDENT)
注意:除了這些常見操作之外,可以在連接(join)操作中使用關係代數。
