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

📅  最后修改于: 2021-08-27 06:36:05             🧑  作者: Mango

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

设置操作主要分为以下几类:

  1. 联合经营
  2. 交叉口作业
  3. 设定差或减运算

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

类型兼容性:
如果两个关系A(P1,P2,…,Pn)和B(Q1,Q2,…,Qn)都具有相同的度数’k’和B(Q1,Q2,…,Qn),则它们都是类型兼容的(或并集兼容的)。

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

1. UNION操作:

符号:

A ∪ S

其中,A和S是关系,

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

以A∪S表示的Union运算的结果是一个关系,该关系基本上包括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中都存在的所有元组。

有关相交操作的要点:

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

A ∩ B = B ∩ A

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

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

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

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

4.在SQL中,INTERSECT操作与此处的INTERSECTION操作相同。

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

3.减号(或设定差)操作:

记号:

A - S

其中,A和S是关系,

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

相交运算的结果用A – S表示,该关系基本上包括A中存在但S中不存在的所有元组。

减号(或设定差)操作的要点:

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

A - B != B - A

2.在SQL中,EXCEPT操作与此处的MINUS操作相同。

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

例子:
考虑下面给出的学生(FIRST,LAST)和教师(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.学生MINUS系:

Student - Faculty

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