数据库系统-关系代数
关系数据库语言的分类
关系代数语言
- 用对关系的运算来表达查询要求
关系演算语言
- 元组关系演算语言
- 谓词变元的基本对象是元组变量
- 代表:APLHA,QUEL
- 域关系演算语言
- 谓词变元的基本对象是域变量
- 代表:QBE
具有关系代数和关系演算双重特点的语言
- 代表:SQL(Structured Query Language)
关系代数
关系代数是一种抽象的查询语言,它用对关系的运算来表达查询
关系代数
- 运算对象是关系
- 运算结果亦为关系
- 关系代数的运算符有两类:集合运算符和专门的关系运算符
关系代数运算符
符号解释
并(Union)
R和S
- 具有相同的目n(即两个关系都有n个属性)
- 相应的属性取自同一个域
R ∪ S
- 仍为n目关系,由属于R或属于S的元组组成
差(Difference)
R和S
- 具有相同的目n
- 相应的属性取自同一个域
R-S
- 仍为n目关系,由属于R而不属于S的所有元组组成
交(Intersection)
R和S
- 具有相同的目n
- 相应的属性取自同一个域
R∩S
- 仍为n目关系,由既属于R又属于S的元组组成
笛卡尔积(Cartesian Product)
-
R: n目关系,k1个元组; S: m目关系,k2个元组
-
R X S
- 列:(n+m)列元组的集合
- 元组的前n列是关系R的一个元组
- 后m列是关系S的一个元组
- 行:k1 X k2 个元组
- 列:(n+m)列元组的集合
专门的关系运算符
学生关系Student、课程关系Course和选修关系SC
Student
学号 Son | 姓名 Sname | 性别 Ssex | 年龄 Sage | 所在系 Sdept |
---|---|---|---|---|
201215121 | 李勇 | 男 | 20 | CS |
201215122 | 刘晨 | 女 | 19 | CS |
201215123 | 王敏 | 女 | 18 | MA |
201215125 | 张立 | 男 | 19 | IS |
Course
课程号 Con | 课程名 Cname | 先行课 Cpon | 学分 Ccredit |
---|---|---|---|
1 | 数据库 | 5 | 4 |
2 | 数学 | 2 | |
3 | 信息系统 | 1 | 4 |
4 | 操作系统 | 6 | 3 |
5 | 数据结构 | 7 | 4 |
6 | 数据处理 | 2 | |
7 | PASCAL语言 | 6 | 4 |
SC
学号 Son | 课程号 Cno | 成绩 Grade |
---|---|---|
201215121 | 1 | 92 |
201215121 | 2 | 85 |
201215121 | 3 | 88 |
201215122 | 2 | 90 |
201215122 | 3 | 80 |
选择(Selection)
选择又称为限制(Restriction)
选择运算符的含义
选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算
查询信息系(IS系)全体学生
Sdept = ‘IS’(Student)
结果:
Sno | Sname | Ssex | Sage | Sdept |
---|---|---|---|---|
201215125 | 张立 | 男 | 19 | IS |
投影(Projection)
- 从R中选择出若干属性列组成新的关系
- 投影操作主要是从列的角度进行运算
- 投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组
查询学生的姓名和所在系
即求Student关系上学生姓名和所在系两个属性上的投影
结果:
Sname | Sdept |
---|---|
李勇 | CS |
刘晨 | CS |
王敏 | MA |
张立 | IS |
连接(Join)
连接运算的含义
从两个关系的笛卡尔积中选取属性间满足一定条件的元组
一般的连接操作是从行的角度进行运算
自然连接还需要取消重复列,所以是同时从行和列的角度进行运算
悬浮元组(Dangling tuple)
- 两个关系R和S在做自然连接时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃了,这些被舍弃的元组称为悬浮元组
外连接(Outer Join)
-
如果把悬浮元组也保存在结果关系中,而在其他属性上填空值(Null),就叫做外连接
-
左外连接(LEFT OUTER JOIN或LEFT JOIN)
- 只保留左边关系R中的悬浮元组
-
右外连接(RIGHT OUTER JOIN或RIGHT JOIN)
- 只保留右边关系S中的悬浮元组
关系R和关系S的外连接
左外连接 和 右外连接
除运算(Division)
给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组
R中的Y与S中的Y出自相同的域集
R与S的除运算得到一个新的关系P (X),P是R中满足下列条件的元组在X属性列上的投影: