什么是关系代数
1、概念
关系代数是一种抽象的查询语言,用对关系的运算来表达查询。
2、分类
关系代数可以分为传统的集合运算和专门的关系的关系运算两类。
| 集合运算符 | 含义 |
|---|---|
| ∪ | 并 |
| ∩ | 交 |
| − | 差 |
| × | 笛卡儿积 |
| 关系运算符 | 含义 |
|---|---|
| σ | 选择 |
| Π | 投影 |
| 连接 | 连接 |
| ÷ | 除 |
集合运算符
分为并、差、交、笛卡儿积4种。
进行集合运算的前提是关系R和关系S具有相同的目n,且相应的属性取自同一个域。
1、并 : R∪S = { t| t∈R ∨ t∈S }
2、差 : R-S = { t| t∈R ∨ t∉S }
3、交 : R∩S = { t| t∈R ∧ t∉S }
4、笛卡儿积 :
专门的关系运算
象集
在一个关系R(X,Z)中,X和Z为属性组,X的象集是指R中属性组X上值为x的诸元组在Z上分量的集合。
例如:
R
| X | Z |
|---|---|
| x1 | z2 |
| x1 | z3 |
| x1 | z1 |
| x2 | z2 |
| x2 | z3 |
在这个表中x1在R的象集Zx1={Z1,Z2,Z3}
1、选择 (从行的角度进行的运算)
选择运算是根据某些条件挑选出元组(即行)。
σF(R) = {t|t∈R∧F(t)= ‘真’}
F是一个选择条件,即从R中选出满足F为真的行。
2、投影 (从列的角度进行的运算)
投影的作用是在表R中选择出相关的属性组成新的关系(即列)。
ΠA(R) = { t[A] | t∈R }
投影是对列的选择,值得注意的是,如果这一列中有重复的元组,则应该删掉多余的,只留下一个。
3、连接
(连接的符号太难表示了呜呜呜。。。)
(1) 等值连接
从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组。
(2) 自然连接
自然连接是一种特殊的等值连接,a.两个关系中进行比较的分量必须是相同的属性组 b.在结果中把重复的属性列去掉。
概念太抽象,举个栗子就好了:
在R×S 中挑选符合C<E的元组
悬浮元组、外连接、左外连接、右外连接
悬浮元组:在R与S做自然连接的时候,被舍弃的元组称作悬浮元组。
举个栗子:
左表R:
| 姓名 | 住址 | 年龄 |
|---|---|---|
| 张三 | 河大 | 22 |
| 李四 | 苹果园 | 23 |
| 王五 | 堌门村 | 21 |
| 赵六 | 幸福里 | 23 |
右表S:
| 姓名 | 单位 | 薪酬 |
|---|---|---|
| 张三 | 腾讯 | 2000 |
| 李四 | 阿里 | 2300 |
| 朱小明 | 网易 | 1900 |
| 赵六 | 滴滴 | 2900 |
外连接:(保留两个表上的悬浮元组)
| 姓名 | 住址 | 年龄 | 单位 | 薪酬 |
|---|---|---|---|---|
| 张三 | 河大 | 22 | 腾讯 | 2000 |
| 李四 | 苹果园 | 23 | 阿里 | 2300 |
| 赵六 | 幸福里 | 23 | 滴滴 | 2900 |
| 王五 | 堌门村 | 21 | NULL | NULL |
| 朱小明 | NULL | NULL | 网易 | 1900 |
左外连接:(保留左表的悬浮元组)
| 姓名 | 住址 | 年龄 | 单位 | 薪酬 |
|---|---|---|---|---|
| 张三 | 河大 | 22 | 腾讯 | 2000 |
| 李四 | 苹果园 | 23 | 阿里 | 2300 |
| 赵六 | 幸福里 | 23 | 滴滴 | 2900 |
| 王五 | 堌门村 | 21 | NULL | NULL |
右外连接:(保留右表的悬浮元组)
| 姓名 | 住址 | 年龄 | 单位 | 薪酬 |
|---|---|---|---|---|
| 张三 | 河大 | 22 | 腾讯 | 2000 |
| 李四 | 苹果园 | 23 | 阿里 | 2300 |
| 赵六 | 幸福里 | 23 | 滴滴 | 2900 |
| 朱小明 | NULL | NULL | 网易 | 1900 |
4、除运算
下一次课后补
今天课上的小练习,很简单:
1、查询在Student表中CS系的学生。
2、查询Student表中学号属性。
3、查询Student表中CS系的学生的学号。
4、在Student表中查询SC表中成绩大于等于90的学生的姓名。
(《数据库系统概论》P52表)。
本文介绍了关系代数的基本概念,包括其作为抽象查询语言的角色,并详细解释了集合运算和专门的关系运算,如并、差、交、笛卡儿积、选择、投影、连接及除等操作。通过实例说明了这些运算在数据库查询中的应用。
1万+

被折叠的 条评论
为什么被折叠?



