赞
踩
符号()
R∪S = { t|t R∨t S }
例如:
符号(-)
R-S={t| t R t S}
符号()
R×S = { | }
R×S运算结果也是一个关系:
列:(n+m)列元组的集合量(R x S是n+m度关系)
行:k1×k2个元组( R×S的基数)
例如:
符号()
查询信息系(IS系)全体学生:
结果:
符号()
1.查询学生的姓名和所在系。 即求Student关系上学生姓名和 所在系两个属性上的投影。
结果:
2.查询学生关系Student中都有哪些系
结果:(注意,此时自动要消除重复的元组)
符号()
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(X,Z),X和Z为属性组。当t [X]=x时,x在R中 的象集(Images Set)为:
它表示R中属性组X上值为x的诸元组在Z上分量的集合。
注意:可以这样理解,把A看成X可取值a1,a2。B看成Y,有关系Y=F(X),当X取a1时,自变量Y(B)可以取b1,b2。
象集的本质是一次选择运算和一次投影运算
例如:
为了方便理解,我做以下解释:
除操作比较抽象,我们可以把它理解为一种筛选,这中筛选包括“至少”、“全部”。
也可以把它类比成数学中的除法:“被除数 除数 = 结果”,其中先寻找1、要根据什么内容(记为A1)筛选,如上面的例子根据(B、C)来筛选,2、再寻找在哪里面筛选(筛选什么?)(记为A2),上面是在R中筛选。3、如何筛选(记为),筛选A属性中对应的B、C包括全部的S中B、C属性的A属性。上面可以表示为A2 A1=?。
(关系都在2.2.1例题)
(一)查询至少选修1号课程和3号课程的学生号码
分析:
1、要根据什么内容筛选?——根据课程号(1号、3号)筛选
2、筛选什么?——筛选学生学号(在关系Student中)
3、如何筛选?——找到 关系(学号,课程号) 关系(课程号={1、3})
step1:首先建立一个临时关系K(K={1,3})
step2:再求: (注意:因为只要学号,所以可以进行投影除学号(Sno)和课程号(Cno)这两个属性)
step3:
(二) 查询选修了2号课程的学生的学号
这个比较简单,可以直接用选择和投影。
(三) 查询至少选修了一门其直接先行课为5号课程的学生姓名
这里需要注意的是,学生姓名和先行课课号没有直接联系
分析:
但是需要注意的是如何构建 关系(学号,课程号,先行课) 和关系(先行课=5)
step1:首先将Course和SC进行自然连接得到 关系(学号,课程号,成绩,课程名,先行课,学分),再将其投影成 关系(学号,课程号,先行课)
step2:选择Course中先选择 关系(先行课=5)
step3:关系(学号,课程号,先行课) 关系(先行课=5),再投影出学号,将学号与Student自然连接,接着投影出姓名。
解二:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。