数据库系统概论|第二章:关系数据库—课程笔记3

前言

在前面两节中,已经学习了关系的形式化定义以及有关概念、关系的有关操作、关系的三类完整性约束,接下来我们将介绍关系数据库系统中关系操作的一种语言——关系代数。

关系代数是一种抽象的查询语言它用对关系的运算来表达查询。运算的三大要素为:运算对象、运算符、运算结果。关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括两类:集合运算符和专门的关系运算符

一.传统的集合运算

 传统的集合运算是二目运算,包括并、差、交、笛卡尔积4种运算。

设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域t是元组变量,t∈R表示tR的一个元组。

下面为了方便展示与理解,我们引入关系R和S如下表:

1.并

 ,其结果仍为n目关系,由属于R或属于S的元组组成。上述关系R和S的并可以表示如下,可以发现,重复的元组只需要书写一遍

2.差

其结果关系仍为n目关系,由属于R而不属于S的所有元组组成。上述关系R和S的差可以表示如下,R-S中,其实寻找的就是独属于R自己本身的一些元组

3.交

 其结果关系仍为n目关系,由既属于R又属于S的元组组成。上述关系R和S的交可以表示如下。

4.笛卡尔积⭐

 两个分别为n目和m目的关系RS的笛卡尔积是一个n+m的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若Rk1个元组,Sk2个元组,则关系R和关系S的笛卡尔积有k1×k2个元组。记作:。上述关系R与S的笛卡尔积可以表示如下。进行运算之前,关系R共有3目,3个元组,关系S共有3目,3个元组;进行笛卡尔积之后,R×S中,共包含(3+3)=6目(即6列),3*3=9个元组(即9行)。

笛卡尔积与前三种运算不一样,并、差、交运算过后,保持原关系目数不变,而笛卡尔积改变了原关系的目数,熟记笛卡尔积运算过后的目数以及元组个数计算方法。

二、专门的关系运算

1.选择

选择又称为限制。它是在关系R中选择满足给定条件的诸元组【行操作】,记作:其中F表示选择条件,它是一个逻辑表达式,取逻辑值

逻辑表达式F的基本形式为:X1θY1

其中θ表示比较运算符,它可以是>,,<,,=或<>(不等于)。X1Y1等是属性名,或为常量,或为简单函数;属性名也可以用它的序号来代替。

可以来看几个例子更好的理解这种运算,在使用或者书写时,σ表示进行选择操作,而在其右下角给出了具体的选择条件,括号中则体现了在哪一组关系中进行选择,那么,例2.4给出的表达式的具体含义便为在学生关系Student中,寻找Sdet属性为“IS”的学生。简单来讲,其实这里面的选择的运算和Excel中的筛选功能相似,可以参考记忆。

 2.投影

关系R上的投影是从R中选择出若干属性列组成新的关系。记作:

其中AR中的属性列。投影操作是从列的角度进行的运算【列操作】

下面来看例子,在使用或者书写时,Π表示进行投影操作,在其右下角表示着要进行投影的属性【就是要选出的列】,括号中则体现着对哪个关系表进行操作。那么,例2.6给出的表达式的具体含义为在学生关系Student中,对Smane、Sdept两列进行投影,即选择这两列构成新的关系在投影操作中,重复的分量会被避免重复出现,仅显示一次。

3.连接⭐

 连接也称为θ连接。它是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作:其中,AB分别为RS上列数相等且可比的属性组,θ是比较运算符。连接运算从RS的笛卡儿积R×S选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系θ的元组

下面介绍两种特殊的连接

下面通过具体的例子更好的理解连接

在例2.8中,非常好的展示了种种连接之间的区别与联系,(c)中,满足C<E这一要求的元组才会被选择进入关系;(d)中,利用关系R与关系S中都有的B属性进行等值比较,相等的元组进行连接;(e)是对(d)的进一步操作,删除了(d)中的重复列,其余部分无变化。

在进行连接操作中,有些元组不会被使用,从而被舍弃,他们被称为悬浮元组。如果在连接中,用“NULL”进行填补,这种连接叫作“外连接”。如果仅保留左边的悬浮元组,称为“左外连接”;如果仅保留右边的悬浮元组,称为“右外连接”

上图很明显的展示了三种“外连接”,(a)的倒数第二行的元组来自于关系R,而在关系S中,无法进行连接,因此用“NULL”填补,最后一行同理。然后根据保留左边或者右边分为左外连接或者右外连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值