【数据库】关系代数基本运算
前言
关系代数是以关系为运算对象的一组高级运算的集合。由于关系定义为属性个数相同的元组的集合,因此集合代数的操作就可以引入到关系代数中。关系代数中的操作可以分为两类:传统的关系操作,并、差、交、笛卡尔积(乘)、笛卡尔积的逆运算(除);扩充的关系操作,对关系进行垂直分割(投影)、水平分割(选择)、关系的结合(连接、自然连接)等。
五个基本的关系代数操作
五个关系代数操作分别是:并、差、笛卡尔积、投影和选择。
它们组成了关系代数完备的操作集。例子,分析下面两个关系:

关系代数操作的结果
(a)R∪S 并 (b)R-S 差 (c)R×S 笛卡尔积 (d)πC,A(R) 投影 (e)σB>’4’ (R) 选择

说明:笛卡尔积,若R有m个元组,S有n个元组,则R×S有m×n个元组。投影,C和A为属性名,说明要选择的列。选择B>'4',即选择语句的条件,对关系做水平分割,选择符合条件的元组。
连接
连接是从关系R和S的笛卡尔积中选取属性值满足某一个操作的元组。
下面的例子同σ2=4 (R×S)。

自然连接

实例
在关系代数运算中,把由五个基本操作经过有限次复合的式子称为关系代数表达式。这种表达式的运算结果仍是一个关系。我们可以用关系代数表达式表示各种数据查询操作。
【例4.5】对于下面的教学数据库中的四个关系,为方便起见,其名称简化为T、C、S和SC:

下面用关系代数表达式表达每个查询语句
1)检索学习课程号为C2课程的学生学号和姓名

由于这个查询涉及到两个关系S与SC,因此先要对这两个关系进行自然连接操作,然后再执行选择和投影操作。
《除法运算》:数据库考试中经常会出现关系运算题目
而一般的加减乘运算相对比较简单,通常不会直接出题
比较容易乱的是除法
认真看下面这段中的图,很容易就理解出除法的
除法运算的定义: 
这个概念的描述的非常抽象,刚开始学习的同学完全不知所云。这里通过一个实例来说明除法运算的求解过程
设有关系R、S 如图所示,求R÷S 的结果 
求解步骤过程:
第一步:找出关系R和关系S中相同的属性,即Y属性。在关系S中对Y做投影(即将Y列取出);所得结果如下 
第二步:被除关系R中与S中不相同的属性列是X ,关系R在属性(X)上做取消重复值的投影为{X1,X2};
第三步:求关系R中X属性对应的像集Y
根据关系R的记录,可以得到与X1值有关的记录,如图3所示;与X2有关的记录,如图4所示 
第四步:判断包含关系
R÷S其实就是判断关系R中X各个值的像集Y是否包含关系S中属性Y的所有值。对比即可发现:
X1的像集只有Y1,不能包含关系S中属性Y的所有值,所以排除掉X1;
而X2的像集包含了关系S中属性Y的所有值,所以R÷S的最终结果就是X2 
差操作:
设R和S是n元关系,而且两者各对应属性的数据类型也相同。R和S的差定义为 R-S ={ t | t∈R∧tS}。
白话: 因为是R-S, 找R在S关系中没有的


新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。
更多推荐


所有评论(0)