03关系代数语言

上一节,我们学习了关系模型,其中关系操作我们只是一带而过。本章我们将进行详细的介绍。

关系操作是基于关系代数语言实现的。

关系代数是对关系进行集合代数运算,是基于关系代数的操作语言,称为关系代数语言,简称关系代数.

关系代数的运算对象是关系,运算结果也是关系.

本节内容也可以参考离散数学中的关系章节。


目录

3.0关系的相容性

3.1集合运算

3.1.1并运算

3.1.2差运算

3.1.3交运算

3.1.4笛卡尔积

3.2专门的关系运算

3.2.1选择运算σ

3.2.2投影运算Π

3.2.3连接运算X

3.2.3.1等值连接

3.2.3.2自然连接

 3.2.3.3外连接

3.2.4扩展的关系代数运算


3.0关系的相容性

在正式开始之前,先介绍一个概念,关系的相容性:

给定两个关系R、S,若满足:元数相同(具有相同数量的属性)、R中第i个属性和S中第i个属性必须来自同一个域,则说R和S是相容的。

根据定义不难理解,这里就不做赘述了。

  • 3.1集合运算

  • 为了便于理解,集合运算的介绍时,我们举例用的是如下的两个简单的关系(r和s)。

 

3.1.1并运算

  • R和S所有元组合并,且删去重复组
  • 相当于数学集合中的交集运算
  • 用于记录的插入和添加

3.1.2差运算

  • R-S:R中删除与S中相同的元组

  • 实现关系数据库记录的删除

3.1.3交运算

  • R∩S=R-(R-S)
  • 相当于数学中的并集运算

3.1.4笛卡尔积

  • 用于两关系的连接操作

  • 属性命名规则

    • 两关系属性名相同:利用命名机制来区分,把各自关系附加到该属性上,两关系不存在相同属性名:省略前缀
    • 更名运算:假设关系代数表达式是n元的,则表达式b表示返回表达式E的结果,并赋给他名字x,同时将各个属性更名为A1,A2,...,An。

3.2专门的关系运算

介绍专门关系运算时,各个运算的定义我这里就不写出了,比较晦涩,感兴趣的朋友可以自行搜索,这里想用图的形式帮助大家理解。

3.2.1选择运算σ

从关系中选取逻辑表达F为真的元组,是从行的角度进行的运算

从表里把满足你要求的行挑出来,然后合并!

举个例子:找出关系R中属性A=属性B并且属性D>5的元组。

 3.2.2投影运算Π

关系R上的投影,是从关系R中取若干列组成新的关系 ,是从列的角度进行的运算

 从表里把你要的列挑出来然后合并but投影的结果中要去掉相同的行。

其实很好理解,我们在02节将关系模型时候提到关系的性质中有一天“不能出现相同的元组,在本节开头我们就提到了关系代数运算的对象和结果仍是关系,那么,自然而然,投影的结果要去掉相同的行。

举个例子:投影关系R中的A、C属性。

那么,进一步想,为什么投影会出现相同元组,而选择就不会呢?

理解这个问题,更容易帮助大家理解选择和投影的定义和区别。

对于属性来说,选择是对行进行的运算,选择运算选择时包括所有属性的,而投影运算对列的运算,只涉及部分属性。根据关系的性质,操作前的关系肯定不存在相同的元组,选择是从这些本就不重复的元组里挑部分元组,而投影挑出是所有元组的部分列。比如说有三个元组”1,1,2“”1,1,3“”1,1,4“,如果对1、2两列进行投影,那么这三个元组都是”1,1“了。

3.2.3连接运算X

  • 建立在笛卡尔积运算基础上
  • 两个关系的笛卡尔积中选取属性间满足一定条件的元组

  • 连接运算从R和S的笛卡尔积R×S中选取(R关系)在A 属性组上的值与(S关系)在B属性组上值满足比较关系θ 的元组。

  • 两个关系笛卡尔积的结果上再进行选择运算

3.2.3.1等值连接

从关系R和关系S的笛卡尔积中选取A、B属性值相等的元组

3.2.3.2自然连接

特殊的等值连接,在等值连接的基础上,把重复的列属性去掉

一般的连接操作是从行的角度进行运算,自然连接还需 要取消重复列,所以是同时从行和列的角度进行运算。

 看个例子:

 3.2.3.3外连接

  • 外连接运算是连接运算的扩展,可以处理缺失信息
  • 在结果中创建带空值的元组,以此来保留在连接中丢失的 那些元组,缺失属性上取null
  • 根据保留元组的不同,外连接又分为左外连接,右外连接, 全外连接
  • 外连接建立在自然连接的基础上

通过一个例子,就容易理解了

例1:

例2

3.2.4扩展的关系代数运算

 其实,除了基本关系代数运算、附加的关系代数运算(交、连接运算)外,还有扩展的关系代数运算(可由基本关系代数运算表达,不能增强关系代数的表达能力,却可以简化一些常用的查询)。主要有广义投影和聚集运算。

广义投影是在投影的基础上,允许在投影列表中使用算术运算符和字符串函数。

 聚集运算,是以值得一个集合作为输入,将单一得值作为结果返回。

扩展得关系代数运算就简单介绍这么多,感兴趣得朋友可以深入去了解和学习。

本文就介绍到这里,下一节我们将进入数据库查询语言SQL的学习。

下面这张图较为清晰的为大家梳理了本文的内容,创作不易,点个赞吧各位看官。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值