数据库基础---选择,投影,连接,除法运算
转载自:https://blog.csdn.net/Candle_light/article/details/84424034关系数据库中的选择,投影,连接,除法都是很重要的运算选择定义:在关系中选择在指定属性上有确定值的关系的子集。表示为:选择运算是选择关系中行的子集,即选择满足条件的元组例:1.查询信息系(IS系)全体学生σ Sdept=‘IS’(Stude...
转载自:https://blog.csdn.net/Candle_light/article/details/84424034
关系数据库中的选择,投影,连接,除法都是很重要的运算
选择
定义:在关系中选择在指定属性上有确定值的关系的子集。表示为:
选择运算是选择关系中行的子集,即选择满足条件的元组
例:
1.查询信息系(IS系)全体学生
σ Sdept=‘IS’(Student)
2.查询年龄小于20岁的学生
σ Sage<20(Student)
选择运算的特性:
投影
投影是选取关系中列的子集。设模式R上关系r,X是R上属性的子集(x就是列),r到 X上的投影r`表示为:
投影操作是从列的角度进行行的运算。投影的结果不是原来的关系,是X中的几列属性。
特别注意
由于投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列之后,就可能出现重复行,投影结果中不应该包含重复行
例子:查询学生关系Student中都有哪些系,即查询关系Student上所在系属性上的投影
Student关系如图所示:
| Sname | Sdept |
|---|---|
| 李勇 | CS |
| 刘晨 | CS |
| 王小明 | MA |
| 张超 | IS |
求 : π Sdept(Student)
因为Student关系原来有4个元组,但是我们的投影结果需要取消重复的CS元组,因此投影结果只有三个元组:
| Sdept |
|---|
| CS |
| MA |
| IS |
投影的特性
连接(Join):自然连接,等值连接
定义: 连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
记作:
(θ为比较符: >,<,≥,≤,=,≠)
1.等值连接
θ为 = 符号的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A , B 属性值相等的那些元组。
(被水印遮住的地方是A=B)
2.自然连接
自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉
表示为: R⋈S={t r⌒ts |tr∈R∧ts∈S∧tr[B]=ts[B]}
(自然连接也可看作是在广义笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。)
所以等值连接和自然连接的区别是
自然连接是去除了重复的属性列的!
例题
求R和S的自然连接,等值连接,以及非等值连接R[C<E]S 的结果
R :
| A | B | C |
|---|---|---|
| a1 | b1 | 5 |
| a1 | b2 | 6 |
| a2 | b3 | 8 |
| a2 | b4 | 12 |
S:
| B | E |
|---|---|
| b1 | 3 |
| b2 | 7 |
| b3 | 10 |
| b3 | 2 |
| b5 | 2 |
自然连接:R⋈S
| A | B | C | E |
|---|---|---|---|
| a1 | b1 | 5 | 3 |
| a1 | b2 | 6 | 7 |
| a2 | b3 | 8 | 10 |
| a2 | b3 | 8 | 2 |
等值连接:R[R.B=S.B]S
| A | R.B | C | S.B | E |
|---|---|---|---|---|
| a1 | b1 | 5 | b1 | 3 |
| a1 | b2 | 6 | b2 | 7 |
| a2 | b3 | 8 | b3 | 10 |
| a2 | b3 | 8 | b3 | 2 |
非等值连接:R[C<E]S
| A | R.B | C | S.B | E |
|---|---|---|---|---|
| a1 | b1 | 5 | b2 | 7 |
| a1 | b1 | 5 | b3 | 10 |
| a1 | b2 | 6 | b2 | 7 |
| a1 | b2 | 6 | b3 | 10 |
| a2 | b3 | 8 | b3 | 10 |
除法运算(division)
设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中
除法的结果可以用计算象集的方法来解决,以一道题为例来说明怎么求除法
例题:已知关系R和S如下,求R➗S的结果
第一步 : 因为R÷S所得到的属性值 是包含于R,但是S不包含的属性, 所以R➗S得到的属性列有(A,B),S在(C,D)属性上的投影为{(c1,d1),(c2,d2)}
第二步 : 关系R中,AB属性可以取值为={(a1,b1),(a2,b2),(a3,b3)}
第三步 : 求象集
- (a1,b1)={(c1,d1),(c2,d2),(c3,d3)}
- (a2,b2)={(c2,d2)}
- (a3,b3)={(c1,d1),(c2,d2)}
第四步: 从第三步中可以发现,有象集(a1,b1)和(a3,b3)包含了S在(C,D)属性上的投影,所以R÷S={(a1,b1),(a3,b3)}
| A | B |
|---|---|
| a1 | b1 |
| a3 | b3 |
更多推荐



所有评论(0)