关系代数是一种过程查询语言,它提供了一步一步的过程来获取查询的结果。 它使用运算符来执行查询。
关系操作的类型

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)操作中使用关系代数。
