当前位置: 首页 > 教程 > 数据库管理系统 >

DBMS关系代数

精华
小牛编辑
166浏览
2023-03-14

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

关系操作的类型

1. 选择操作

  • 选择(select)操作选择满足给定谓词的元组。
  • 它由西格玛(σ)表示。
符号:  σ p(r)

其中:

  • σ 用于选择预测
  • r 用于关系
  • p 用作命题逻辑公式,可以使用以下连接符:AND ORNOT。这些关系可以用作关系运算符,如:=<>

例如 : 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)

其中,

A1A2A3用作关系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.联合操作

假设有两个元组RS。并集操作包含RS中的所有元组或R&S中的两个元组。
它消除了重复的元组。它使用表示。

符号 : R ∪ S

联合操作必须符合以下条件:

  • RS必须具有相同数量的属性。
  • 自动消除重复的元组。

示例:存款人关系

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. 集合交集

假设有两个元组RS,集合交集操作包含R&S中的所有元组。
它用交叉符号表示。

 R ∩ S

示例: 使用上面的存款人(DEPOSITOR)表和借款人(BORROW)表

输入:

∏ CUSTOMER_NAME (BORROW) ∩ ∏ CUSTOMER_NAME (DEPOSITOR)

输出:

CUSTOMER_NAME
--------------------------------
Smith
Jones

5. 集合差集

假设有两个元组RS。集合交集操作包含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)操作中使用关系代数。