先决条件– DBMS中的关系代数
这些集合论运算是集合上的标准数学运算。这些操作是二进制操作,即与PROJECT,SELECT和RENAME操作不同,它们在2个关系上进行操作。这些操作用于以各种方式合并2套。
设置操作主要分为以下几类:
- 联合经营
- 交叉口作业
- 设定差或减运算
在对关系应用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 |