定义:在关系中选择在指定属性上有确定值的关系的子集。表示为:
选择运算是选择关系中
行
的子集,即选择满足条件的元组
例:
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)
投影的特性
定义:
连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
记作:
(θ为比较符: >,<,≥,≤,=,≠)
θ为
=
符号的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A , B 属性值相等的那些元组。
(被水印遮住的地方是A=B)
自然连接是一种特殊的等值连接。
它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉
表示为: 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
|
B
|
E
|
b1
|
3
|
b2
|
7
|
b3
|
10
|
b3
|
2
|
b5
|
2
|
A
|
B
|
C
|
E
|
a1
|
b1
|
5
|
3
|
a1
|
b2
|
6
|
7
|
a2
|
b3
|
8
|
10
|
a2
|
b3
|
8
|
2
|
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
|
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
|
设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中
例题:已知关系R和S如下,求R➗S的结果
-
(a1,b1)={(c1,d1),(c2,d2),(c3,d3)}
-
(a2,b2)={(c2,d2)}
-
(a3,b3)={(c1,d1),(c2,d2)}
关系代数 Relational Algebra中,一元运算符有
选择
select、
投影
project、重命名remane,其余的包括并运算union、集合差set diffetence、笛卡尔积cartesian product等为二元运算符。下面学习它们的基本使用。
一、一元运算符
a)
选择
选择
的操作符为小写sigma(σ),比如
选择
物理系的教师,可以写为:
σdept_name=”P
选择
是单目运算,其运算对象是一个表。该运算按给定的条件,从表中选出满足条件的行形成一个新表作为运算结果。
选择
运算的记号为 σF(R)。
其中σ是
选择
运算符,下标F是一个条件表达式,R是被操作的表。
投影
(Projection)
投影
也是单目运算,该运算从表中选出指定的属性值组成一个新表,记为:ΠA(R)。
其中A是属性名(即列名)表,R是表名。
连接
(JOI...
自然
连接
(natural join)
自然
连接
是一种特殊的等值
连接
,他要求两个关系表中进行比较的必须是相同的属性列,无须添加
连接
条件,并且在结果中消除重复的属性列。
sql语句:Select …… from 表1 natural join 表2
2.
投影
投影
是选取关系中列的子集。设模式R上关系r,X是R上属性的子集(x就是列),r到 X上的
投影
r`表示为:
投影
操作是...
关系R上的
投影
是从R 中
选择
出若干属性列组成新的关系。
记作:π A (R )= { t [A ] | t ∈ R } 其中A 为R 中的属性列。
投影
操作是从列的角度进行的运算。
例3 查询学生的姓名和所在系,即求Student关系在学生姓名和所在系两个属性上的
投影
。π Sname, Sdept (Student)或 π2, 5 (Student)
关系代数运算
关系代数用对关系的运算来表达查询,运算对象是关系,结果得到关系
关系可以理解为一张二维表,例如一张学生表,就是一个关系,关系代数运算就是我们写sql的一些查询操作,操作表生成新的表或者视图
关系代数的运算有两种:
运算符为传统的集合运算符:并、差、交、笛卡尔积
运算符为专门的关系运算符:
选择
、
投影
、
连接
、除
传统的集合运算符:从表的行的角度进行运算,所以需要运算的关系R、S具有相同的属性列的类型、属性列数目
专门的关系运算符:涉及到列、行,没有那些限制
其他:
选择
、
投影
、并、差、笛卡尔积是