关系代数是一种过程查询语言。它给出了逐步的过程以获得查询结果。它使用运算符执行查询。
关系运算的类型
1.选择操作:
- 选择操作选择满足给定谓词的元组。
- 用西格玛(σ)表示。
Notation: σ p(r)
哪里:
σ用于选择预测r用于关系p被用作命题逻辑公式, 可以使用诸如AND AND和NOT之类的连接器。这些关系可以用作=, ≠, ≥, <, >, ≤之类的关系运算符。
例如:贷款关系
| 分店名称 | LOAN_NO | 量 |
|---|---|---|
| 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)
输出:
| 分店名称 | LOAN_NO | 量 |
|---|---|---|
| Perryride | L-15 | 1500 |
| Perryride | L-16 | 1300 |
2.项目运作:
- 此操作显示了我们希望出现在结果中的那些属性的列表。其余属性将从表中删除。
- 用∏表示。
Notation: ∏ A1, A2, An (r)
哪里
A1, A2, A3用作关系r的属性名称。
示例:客户关系
| NAME | 街 | 市 |
|---|---|---|
| Jones | Main | Harrison |
| Smith | North | Rye |
| Hays | Main | Harrison |
| Curry | North | Rye |
| Johnson | Alma | Brooklyn |
| Brooks | Senator | Brooklyn |
输入:
∏ NAME, CITY (CUSTOMER)
输出:
| NAME | 市 |
|---|---|
| Jones | Harrison |
| Smith | Rye |
| Hays | Harrison |
| Curry | Rye |
| Johnson | Brooklyn |
| Brooks | Brooklyn |
3.工会运作:
- 假设有两个元组R和S。联合操作包含R或S中的所有元组, 或R&S中的两个元组。
- 它消除了重复的元组。用∪表示。
Notation: R ∪ S
联合操作必须满足以下条件:
- R和S必须具有相同编号的属性。
- 自动删除重复的元组。
例:
存款人关系
| 顾客姓名 | 户口号码 |
|---|---|
| Johnson | A-101 |
| Smith | A-121 |
| Mayes | A-321 |
| Turner | A-176 |
| Johnson | A-273 |
| Jones | A-472 |
| Lindsay | A-284 |
借阅关系
| 顾客姓名 | 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)
输出:
| 顾客姓名 |
|---|
| Johnson |
| Smith |
| Hayes |
| Turner |
| Jones |
| Lindsay |
| Jackson |
| Curry |
| Williams |
| Mayes |
4.设置交叉点:
- 假设有两个元组R和S。设置的相交操作包含R和S中的所有元组。
- 用交点∩表示。
Notation: R ∩ S
示例:使用上面的DEPOSITOR表和BORROW表
输入:
∏ CUSTOMER_NAME (BORROW) ∩ ∏ CUSTOMER_NAME (DEPOSITOR)
输出:
| 顾客姓名 |
|---|
| Smith |
| Jones |
5.设置差异:
- 假设有两个元组R和S。集合的相交操作包含R中的所有元组, 但S中的所有元组。
- 用交点减号(-)表示。
Notation: R - S
示例:使用上面的DEPOSITOR表和BORROW表
输入:
∏ CUSTOMER_NAME (BORROW) - ∏ CUSTOMER_NAME (DEPOSITOR)
输出:
| 顾客姓名 |
|---|
| Jackson |
| Hayes |
| Willians |
| Curry |
6.笛卡尔积
- 笛卡尔积用于组合一个表中的每一行和另一表中的每一行。它也被称为交叉产品。
- 用X表示。
Notation: E X D
例:
雇员
| EMP_ID | EMP_NAME | EMP_DEPT |
|---|---|---|
| 1 | Smith | A |
| 2 | Harry | C |
| 3 | John | B |
部门
| 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)
srcmini
评论前必须登录!
注册