member:
name | age | sex |
Amui | 3 | f |
Lily | 5 | f |
Tom | 7 | m |
student
stu_id | name | grade |
111 | Amui | 1 |
222 | Lily | 2 |
333 | Jane | 1 |
444 | Mark | 3 |
并运算∪
a) 关系是集合,所以重复值被去除。
b) 做并运算的关系必须是相容的。即
i. 关系r和s是同元的,两个关系的属性数目必须相同,
ii. 对于任意的i,r的第i个属性的域必须和s的第i个属性的域相同。
Πname (member) ∪Πname (student)
name |
Amui |
Lily |
Tom |
Jane |
Mark |
2. 集合差运算-
a) 集合差运算使我们可以找出在一个关系中存在而不在另一个关系中的那些元组。
b)与并运算一样,参与差运算的两个关系必须是相容的。
Πname (member) -Πname (student)
name |
Tom |
3. 集合交运算∩
a) r∩s=r-(r-s)
Πname (member) ∩Πname (student)
name |
Amui |
Lily |
4. 笛卡尔积运算× (Cartesian-product)
a) 通过笛卡尔积运算可以将任意两个关系的信息组合在一起。
member×student
member.name | age | sex | stu_id | student.name | grade |
Amui | 3 | f | 111 | Amui | 1 |
Amui | 3 | f | 222 | Lily | 2 |
Amui | 3 | f | 333 | Jane | 1 |
Amui | 3 | f | 444 | Mark | 3 |
Lily | 5 | f | 111 | Amui | 1 |
Lily | 5 | f | 222 | Lily | 2 |
Lily | 5 | f | 333 | Jane | 1 |
Lily | 5 | f | 444 | Mark | 3 |
Tom | 7 | m | 111 | Amui | 1 |
Tom | 7 | m | 222 | Lily | 2 |
Tom | 7 | m | 333 | Jane | 1 |
Tom | 7 | m | 444 | Mark | 3 |
5. 自然连接运算(全外连接)
a) 自然连接运算首先形成两个关系的笛卡尔积,然后基于两个关系模式中都出现的属性的相等性进行选择,最后去除重复性。
Member自然连接student
member.name | age | sex | stu_id | grade |
Amui | 3 | f | 111 | 1 |
Lily | 5 | f | 222 | 2 |
Tom | 7 | m | Null | null |
Jane | null | null | 333 | 1 |
Mark | null | null | 444 | 3 |
6. 左外连接
Member左外连接student
member.name | age | sex | stu_id | grade |
Amui | 3 | f | 111 | 1 |
Lily | 5 | f | 222 | 2 |
Tom | 7 | m | Null | null |
7.右外连接
Member右外连接student
member.name | age | sex | stu_id | grade |
Amui | 3 | f | 111 | 1 |
Lily | 5 | f | 222 | 2 |
Jane | null | null | 333 | 1 |
Mark | null | null | 444 | 3 |
8. 除运算÷
R:
A | B | C |
a1 | b1 | c2 |
a2 | b3 | c7 |
a3 | b4 | c6 |
a1 | b2 | c3 |
a4 | b6 | c6 |
a2 | b2 | c3 |
a1 | b2 | c1 |
S:
B | C | D |
b1 | c2 | d1 |
b2 | c1 | d1 |
b2 | c3 | d2 |
R÷S
A |
a1 |
/*
(1) 找S与R的共同属性,其元组看做整体 k
(2)选择R中包含k的 非S与R相同属性的 属性 即为R÷S
*/
解答如下:
在关系R中,A可以取四个值{a1,a2,a3,a4},其中:
a1的象集为:{(b1,c2),(b2,c3),(b2,c1)}
a2的象集为:{(b3,c7),(b2,c3)}
a3的象集为:{(b4,c6)}
a4的象集为:{(b6,c6)}
S在(B,C)上的投影为{(b1,c2),(b2,c3),(b2,c1)}。
显然只有a1的象集(B,C)a1包含S在(B,C)属性组上的投影,所以R÷S={a1}。