关系数据库——关系代数

一、传统的集合运算

传统的集合运算有并、交、差、笛卡尔积,都比较简单。
在这里插入图片描述


二、专门的关系运算

专门的关系运算包括选择、投影、连接、除运算等。

1.选择(restriction)

在关系R中选择满足给定条件的诸元组,记作:
σF (R ) = {t |t ∈ R∧F (t ) = ‘真’}

F表示选择条件,是一个逻辑表达式,取值为“真”或“假”,其基本形式为:X1θY1,选择运算是从关系R中选取逻辑表达式F为真的元组,从行的角度进行运算。

例如:查询信息系(IS系)全体学生: σSdept=‘IS’ (Student)

注意:如果属性名是数字,不用加单引号

2.投影(Projection)

从R中选择出若干属性列组成新的关系,记作:
πA ( R ) = { t [A]| t ∈ R }

A表示R 中的属性列
投影操作主要是从列的角度进行运算
但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(为了避免重复行)。

例如:查询学生的姓名和所在系:πSname,Sdept(Student)

3.连接(join)

连接也称为θ连接,从两个关系的笛卡尔积中选取属性间满足一定条件的元组
在这里插入图片描述

A 和B分别为R 和S 上度数相等且可比的属性组
θ是比较运算符
投影操作主要是从列的角度进行运算

1)等值连接

从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组

2)自然连接

两个关系中进行比较的分量必须是相同的属性组,在结果中还要把重复的属性列去掉

在这里插入图片描述

悬浮元组:两个关系R和S在自然连接时,关系R和S中被舍弃的元组
外连接:把悬浮元组舍弃的元组也保存到结果关系中,在其他属性上填空值(NULL)
左外连接:只保留左边的关系R中的悬浮元组
右外连接:只保留右边的关系S中的悬浮元组

在这里插入图片描述

4.除(Division)

给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组,R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。
R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性上的投影:
元组在X上的分量值x的象集Yx包含S在Y上的投影的集合

在这里插入图片描述
解释

  • 在关系R和S中,相同的属性组为(B, C),首先列出属性组A的所有的分量值对应的象集
    a1的象集为{(b1,c2), (b2,c3), (b2,c1)}
    a2的象集为{(b3,c7), (b2,c3)}
    a3的象集为{(b4,c6)}
    a4的象集为{(b6,c6)}
  • 下面观察每一个分量值对应的象集,找到哪一个包含关系S中所有属性组(B,C)上的投影的集合
    S在(B,C)上的投影为{(b1,c2), (b2,c3), (b2,c1)}
    观察得,只有a1的象集包含了S在(B,C)属性组上的投影
    于是R÷S=a1,如图所示

猜你喜欢

转载自blog.csdn.net/z135733/article/details/128812350