📜  关系代数中的集合论运算

📅  最后修改于: 2021-09-08 16:18:21             🧑  作者: Mango

先决条件 – DBMS 中的关系代数
这些集合论运算是集合上的标准数学运算。这些操作是二元操作,也就是说,与 PROJECT、SELECT 和 RENAME 操作不同,这些操作是对 2 个关系进行操作的。这些操作用于以各种方式合并 2 个集合。

set操作主要分为以下几类:

  1. 联合运营
  2. 路口操作
  3. 设置差值或减号操作

在我们对关系应用 3 个集合操作之一之前,我们正在执行操作的两个关系必须具有相同类型的元组。这也称为联合兼容性(或类型兼容性)。

类型兼容性:
两个关系 A(P1, P2, …, Pn) 和 B(Q1, Q2, …, Qn) 被称为类型兼容(或联合兼容),如果这两个关系具有相同的度 ‘k’ 和

domain(Pi) = domain(Qi) for 1<= i <= k. 

1.联合操作:

符号:

A ∪ S

其中,A 和 S 是关系,

符号“∪”用于表示联合运算符。

联合运算的结果,用 A ∪ S 表示,是一种关系,它基本上包括了所有存在于 A 或 S 或两者中的元组,消除了重复的元组。

UNION 操作要点:

1. UNION 操作是可交换的,即:

A ∪ B = B ∪ A

2. UNION 是关联的,这意味着它适用于任意数量的关系。

A ∪ ( B ∪ C ) = ( A ∪ B ) ∪ C

3、在SQL中,UNION操作和这里的UNION操作是一样的。

4. 此外,在 SQL 中有多集操作 UNION ALL。

2. 交集操作:

符号:

A ∩ S

其中,A 和 S 是关系,

符号“∩”用于表示交集运算符。

交运算的结果,用A ∩ S 表示,是一个基本包含A 和S 中存在的所有元组的关系。

INTERSECTION 操作要点:

1. INTERSECTION 操作是可交换的,即:

A ∩ B = B ∩ A

2. INTERSECTION 是关联的,这意味着它适用于任意数量的关系。

A ∩ ( B ∩ C ) = ( A ∩ B ) ∩ C

3. INTERSECTION 可以使用 UNION 和 MINUS 形成,如下所示:

A ∩ B = ((A ∪ B) - (A - B)) - (B - A)

4、在SQL中,INTERSECT操作和这里的INTERSECTION操作一样。

5. 此外,在 SQL 中有多组操作 INTERSECT ALL。

3. MINUS(或SET DIFFERENCE)操作:

符号:

A - S

其中,A 和 S 是关系,

符号“-”用于表示减号运算符。

交运算的结果,用A-S表示,是一个基本包含A中存在但S中不存在的所有元组的关系。

MINUS(或SET DIFFERENCE)运算的要点:

1. SET DIFFERENCE 操作不是可交换的,这意味着:

A - B != B - A

2.在SQL中,EXCEPT操作和这里的MINUS操作一样。

3. 此外,在 SQL 中还有多集操作 EXCEPT ALL。

例子:
考虑如下关系 Student(FIRST, LAST) 和 Faculty(FIRSTN, LASTN) :

First Last
Aisha Arora
Bikash Dutta
Makku Singh
Raju Chopra

FirstN LastN
Raj Kumar
Honey Chand
Makku Singh
Karan Rao

1. 学生会教职工:

Student ∪ Faculty 

First Last
Aisha Arora
Bikash Dutta
Makku Singh
Raju Chopra
Raj Kumar
Honey Chand
Karan Rao

2. 学生交叉学院:

Student ∩ Faculty 

First Last
Makku Singh

3. 学生减教员:

Student - Faculty

First Last
Aisha Arora
Bikash Dutta
Raju Chopra
Raj Kumar
Honey Chand
Karan Rao