解释关系代数 (DBMS) 中的二元运算?

dbmsdatabasebig data analytics更新于 2026/1/12 21:22:17

查询是一个问题或请求信息。查询语言是一种用于从数据库中检索信息的语言。

查询语言分为两种类型 −

  • 过程式语言

  • 非过程式语言

过程式语言

通过指定要执行的操作序列从数据库中检索信息。

例如 −关系代数。

结构化查询语言 (SQL) 基于关系代数。

关系代数由一组运算组成,这些运算以一个或两个关系作为输入,并产生一个新的关系作为输出。

关系代数运算的类型

关系代数运算的不同类型如下 −

  • 选择运算

  • 投影运算

  • 重命名运算

  • 并运算

  • 交运算

  • 差运算

  • 笛卡尔积运算

  • 连接运算

  • 除运算运算

并集、交集、差集、笛卡尔运算、连接、除集都属于二元运算(对两个表进行运算)。

并集运算

并集运算将 R1 和 R2 中的值合并,并删除重复值。

语法

并集运算的语法如下 −

∏ regno(R1) ∪ ∏ regno(R2)

显示 R1 和 R2 的所有 regno。

示例

考虑如下所示的两个表 R1 和 R2 −

表 R1

RegnoBranchSection
1CSEA
2ECEB
3MECHB
4CIVILA
5CSEB

表 R2

RegnoBranchSection
1CIVILA
2CSEA
3ECEB

要显示 R1 和 R2 的所有 regno,请使用以下命令 −

∏ regno(R1) ∪ ∏ regno(R2)

输出

Regno
1
2
3
4
5

该条目不允许替换。

Union All 用于重复条目。

如果使用公共交集,则会显示公共条目。

交集运算

显示 R1 和 R2 中的公共值。它用 ∩ 表示。

交集运算的语法如下 −

∏ regno(R1) ∩ ∏ regno(R2)

示例 1

考虑两个集合,

A={1,2,4,6} 和 B={1,2,7}

A 和 B 的交集

A ∩ B ={1,2}

集合 A 和 B 中都存在的元素,也会出现在 A 和 B 交集所得的集合中。

在关系代数中,如果 R1 和 R2 是关系的两个实例,则

R1 ∩ R2 ={ x | x€ R1 和 x € R2

也就是说,在 R1 和 R2 的交集处,只有同时存在于 R1 和 R2 中的元组才会出现。

示例 2

查找所有在银行有账户且已贷款的客户。

表达式如下 −

∏Name(Depositor) ∩ ∏Name(Borrower)

存款人

IDName
1A
2B
3C

借款人

IDName
2B
3A
5D

因此,存款人和借款人的交集如下 −

A
B

笛卡尔积运算

它无条件地组合 R1 和 R2。

它用 X 表示。

R1 的度 XR2 = R1 的度 + R2 的度

{degree = 总列数}

示例

考虑如下所示的 R1 表 −

RegNoBranchSection
1CSEA
2ECEB
3CIVILA
4ITB

表 R2 如下−

NameRegNo
BhanuPriya
24

因此,R1 X R2 的结果如下 −

RegNoBranchSectionNameRegNo
1CSEABhanu2
1CSEAPriya4
2ECEBBhanu2
2ECEBPriya4
3CIVILABhanu2
3CIVILAPriya4
4ITBBhanu2
4ITBPriya4

连接操作

它根据一个条件将关系 R1 和 R2 组合起来。它用⋈表示。

不同类型的连接操作如下 −

  • Theta 连接

  • 自然连接

  • 外连接

  • 外连接

    • 左外连接

    • 右外连接

    • 全外连接

Theta 连接

如果我们连接 R1 和 R2,但条件不相等,则称为 Theta 连接/非等值连接。

示例

考虑 R1 表

RegNoBranchSection
1CSEA
2ECEB
3CIVILA
4ITB
5ITA

表 R2

NameRegNo
Bhanu2
Priya4

R1 ⋈ R2 条件为 R1.regno > R2.regno

RegNoBranchSectionNameRegno
3CIVILABhanu2
4ITBBhanu2
5ITABhanu2
5ITBPriya4

在连接操作中,我们从笛卡尔积中选择满足 R1.regno>R2.regno 的行。

连接操作 = 选择操作 + 笛卡尔积操作

自然连接

如果我们在相等条件下连接 R1 和 R2,则称为自然连接或等值连接。通常,连接被称为自然连接。

R1 和 R2 的自然连接如下 −

{我们从笛卡尔积中选择满足 R1.regno=R2.regno 的元组}

R1 ⋈ R2

RegnoBranchSectionName
2--Bhanu
4--Priya

外连接

它是自然连接的扩展,用于处理关系中的缺失值。

考虑如下所示的 R1 和 R2 −

表 R1

RegnoBranchSection
1CSEA
2ECEB
3CIVILA
4ITB
5ITA

表 R2

NameRegno
Bhanu2
Priya4
Hari7

外连接有三种类型。下面将通过示例进行解释。

左外连接

表示为 R1 ⋈ R2

RegnoBranchSectionNameRegno
2--Bhanu2
4--Priya4
1--NULLNULL
3--NULLNULL
5--NULLNULL

此处,R1(左表)的所有元组都出现在输出中。

R2 中不匹配的值填充为 NULL。

左外连接 = 自然连接 + 不匹配 / R1 的额外元组。

右外连接

表示为 R1 ⋈ R2

此处,R2(右表)的所有元组都出现在输出中。R1 中不匹配的值填充为 NULL。

RegnoBranchSectionNameRegno
2--Bhanu2
4--Priya4
NULLNULLNULLHari7

右外连接 = 自然连接 + R2 的不匹配/额外元组。

全外连接

表示为 R1 ⋈ R2。

全外连接 = 左外连接 + 右外连接。

RegnoBranchSectionNameRegno
2--Bhanu2
4--Priya4
1--NULLNULL
3--NULLNULL
5--NULLNULL
NULLNULLNULLHari7

示例

下图描述了全外连接 −

除法运算

除法运算符用于涉及"全部"的查询。

R1 ÷ R2 = R1 的元组与 R2 的所有元组相关联。

示例

检索所有课程中教授的科目名称

NameCourse
SystemBtech
Database
DatabaseBtech
AlgebraBtech
Course
Btech
Btech

÷

Name
database

=

结果操作必须具有第一个关系或 R 中存在的关系 S 的元组的所有组合。


相关文章