关系代数基本运算 数据库

article/2025/10/6 11:52:30

操作目录

  • 关系代数的八种基本运算
    • 笛卡尔积
    • 选择
    • 投影
    • 连接
    • 总结

关系代数的八种基本运算

 并,就是将两个或多个表并连起来,需要注意的就是在并的过程中,我们并不是直接一笼统地并起来,而且还要对相同的元祖进行合并,即并操作后的表中,相同的元组不可多次出现(该操作需满足表之间数据结构相同的条件)
 例如R∪S,最后的结果是属于R与S的并集,即新表中的元组一定可以在R或者S中找到。
如下例
在这里插入图片描述
在这里插入图片描述

 交,与数学中的交相类似,也就是两个或多个表进行交操作,相同的元组被保留到新表,而不同的被舍弃。(该操作同样需满足数据结构相同的条件)
 例如R∩S,最后的结果属于R与S的交集,即新表中的元组一定既在R中,又在S中。
如下例
在这里插入图片描述

R与S在并的介绍里。

 差,顾名思义就是两个或多个表进行相减的操作。该操作中需要注意的点是R-S与S-R是不同的(该操作同样需满足数据结构相同的条件)
 例如R-S,最后的结果是属于R但不属于S的,即新表中的元组S一定在R中、但又不在S中。

笛卡尔积

在这里插入图片描述

右上角为运算符号(客户端下显示右上)

 笛卡尔积就是两个或多个表,进行直积操作,该操有点类似于排列组合中的组合数在这里插入图片描述
,只是类似,不是相同,不太理解的同学可以借这个理解,因为在笛卡尔积中,本质上也是对每个表中元组的一种组合,具体操作就是每个表取一个元组出来,直到所有表都取过后,便组成一个元组,所有可能的组合加在一起,就是我们讲的笛卡尔积,即最终的表。该操作不要求表的结构,并且与前面三个不同,它是在行与列两个维度的操作。
如下例
在这里插入图片描述

R与S在并的介绍里。

选择

在这里插入图片描述
 选择就更好理解了,在数据库操作中我们用到最多的可能就是选择了,因为我们每次从数据库中读取数据一定是要加一个条件的,而不可能是把数据库中的所有数据全部提提取出来。选择,说白了就是在我们提取数据时,加一个限定条件,用来直接定位我们需要的数据。例如,你要得到姓名为张三的信息,那么你就要加一个限定,限定name=‘zhangsan’;再比如,你要得到年龄大于18岁的同学的信息,那么你就要加一个限定age>=18用以在对数据进行操作时的限定。这样一说是不是就很好理解了。
 另外需要注意的是,选择是行运算。
在这里插入图片描述

投影

在这里插入图片描述
 投影,如果单从字面理解可能很难想象到它的实际操作是什么,这样我们还是举例来说明。假如有一张表student,该表有三个属性,分别是姓名、年龄、性别。你现在需要统计不同年龄段的学生的数量,那么此时该表中姓名与性别是不是就不那么重要的了呢?我们这时候只需要得到年龄这一列的信息即可进行统计。因此我们只需要取出age这一列的信息即可。这便是投影。
需要注意的是,投影是列运算,并且投影之后会去掉重复的元组。
在这里插入图片描述

连接

在这里插入图片描述
 连接就是将多个表连接成为一个表。在这里,连接还可以进行细分,又分自然连接、等值连接、外连接、内连接,而外连接又分为左外连接与右外连接,还有一个全外连接我们这里不讨论,最后还有一个内连接。下面说一个这几个连接的异同。

 1、自然连接的属性名与值都必须相同,而等值连接只需要值相等即可。
 2、左外连接,就是把左表作为主表,通过连接条件与右表进行对比,右表的元组如果满足条件即加入,不满足条件的相应位置置为NULL;右外连接与左外链接刚好相反就不细说了。
 3、内连接与等值连接是相类似的,其作用效果是相同的。

这里建议小伙伴们不要对于这几个连接的联系和区别有过多纠结,只要知道他们的作用就好了,一昧地纠结反而会导致你陷入死胡同。

 除,在关系代数运算中该运算方式看上去并不是很好理解,但还是与数学运算中的除有类似的地方的,这一点需要每个人的感觉。这里简单解释一下这里的除法运算是什么意思,与上相同,我们还是拿例子来做解释,这样更容易理解。

例题
 描述:假设有表R、S,如下。现在要求R÷S的结果。
在这里插入图片描述
结果
在这里插入图片描述

分析

 在代数运算中的除法与数学中的除法类似,其重点在于因子。现在是不是有点豁然开朗了?如果还没有,继续跟着我的思路往下进行。

 先看R和S的属性都有哪些,R(A、B、C),S(B、C、D),它俩之间共同的部分,就是B、C!也就是上面说到的,因子。这就是求解除法的关键。知道因子后,将该因子(即S中3个元组的B、C的值)都依次与R表中每一元组的B、C的值进行对比,如果每一个元组的两个值都相同,那么结果就是R表中不含B、C的属性。需要注意的地方是,对比B、C值相等并不是只要有一个值相等就可以了,而是S表中的三行B、C值在A属性固定的条件下都能一一对应上,那么此时A属性对应的这个值就为Q的一个值。
 在固定R表的除因子以外的属性的条件下,如果能与因子的各个值都一一对应上,那么此时被固定的值就加入到Q。

 在这题中,我们看到,最后的结果只有一个a1,这就是因为只有含a1的三个元组都能与因子(B、C)所有的值都一一对应上,另外的a2、a3、a4都不能全部一一对应。
在这里插入图片描述

上图是将含a1的元组提出来用以说明。

总结

在这里解答几个问题。

  • S表中的除因子以外的属性怎么办?
      答:不用管。
  • R表中的除因子以外的属性怎么办?
      答:根据分析,我们最后所求结果就是因子以外的属性,一定不能忽略。
  • R表中不能找到与因子内每一个元组都一一对应的元组怎么办?
      答:我们只需要看R中那些都能一一对应上的元组即可,不能一一对应的元组,都直接忽视,不用管,即使它就差一个就能全部对应上,也不能算入Q表!

 最后强调一点,在与因子一一对应时,一定要固定另外的属性,不能变化!
  

好了,关于关系代数运算的相关介绍到这里就结束了,如果有不懂的地方请在评论区留言!
感谢您的阅读。


http://chatgpt.dhexx.cn/article/A1AqiVWr.shtml

相关文章

数据库系统概论----关系运算之除运算

这一周都在复习《数据库系统概论》这门课,看到关系运算的这一节时,对于除运算不是很理解。 通过百度,我觉得也没有得到比较容易理解的讲解。 这里呢,我就分享一下我的理解吧,如有差错的地方,还希望看到这…

数据库-----关系运算

关系数据库概述 相关术语 ◎在现实世界中,描述一个事物常常要抽取其若干特征来表示,这些特征称为属性,如用学号、性别、班级等来描述学生。每个属性的取值范围对应一个值的集合,称为属性的域,如性别的域是{男&#x…

数据库基础--关系代数中的除法运算

除法运算的定义: 这个概念的描述的非常抽象,刚开始学习的同学完全不知所云。这里通过一个实例来说明除法运算的求解过程 设有关系R、S 如图所示,求RS 的结果 求解步骤过程: 第一步:找出关系R和关系S中相同的属…

数据库的运算

数据库的运算可分为集合运算和关系运算。 一、集合运算 • 从关系的水平方向迚行; • 包括,幵、交、差、笛卡尔积运算。 • 幵运算(R U S):可实现数据的揑入。 • 差运算(R–S):主…

关系数据库:专门关系运算

专门关系运算有:选择,投影,连接,除运算。 1.选择从关系中找出满足给定条件的所有元组称为选择,其中条件是用逻辑表达式给出的,逻辑表达式为真时元组被选取。 选择运算记为δF(R)&am…

详解【数据库】关系代数基本运算

文章目录 五中基本的关系代数操作并(Union)差(Difference)广义笛卡尔积(Extended Cartesian Product)投影(Projection)选择(Selection) 连接等值连接自然连接…

数据库关系运算——除运算

书上给“除运算”的定义是: 设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。 我对此不是很理解。 直到看到这样的解读,方才恍然大悟:

【数据库】关系代数基本运算

前言 关系代数是以关系为运算对象的一组高级运算的集合。由于关系定义为属性个数相同的元组的集合,因此集合代数的操作就可以引入到关系代数中。关系代数中的操作可以分为两类:传统的关系操作,并、差、交、笛卡尔积(乘&#xff09…

数据库原理之关系数据库关系运算

关系数据库关系运算 选择投影链接除运算 选择运算 选择运算是从关系R中选取使逻辑表达式F为 真的元组,是从行的角度进行的运算 投影运算 投影操作主要是从列的角度进行运算,但投影之后不仅取消可原关系中的某些列,而且还可能取消某些元组…

数据库之关系数据库的关系运算

关系运算的机理有什么用 我们学习关系运算的机理,对我们理解数据库查询操作非常重要 所以我们进行关系操作时很大程度上需要明白关系操作以及关系之间的逻辑 在我们进行数据库查询操作时,如何规范的使用数据库语言,如何进行选择时能够消除我…

数据库中的关系运算

1、和(Union)运算、针对行 针对两张具有相同属 性的表,将两者表合并起来,在合并过程中遇到重复的行保留一项就行了。 2、差(difference)运算、针对行 针对两张具有相同属 性的表,第一张表减去第…

数据库关系运算

专升本 数据库的关系运算 本文章是讨论数据库中的8种关系运算,分为传统的集合运算和专门的关系运算 传统集合运算 1:并运算U:将表拼接起来,且去掉重复记录(同结构) 2:交运算∩:取…

kafka消费模式

简介:kafka是一种消息队列,主要是观察者模式(Obsever)一个分布式的发布、订阅的消息系统,支持海量数据的数据传递(高吞吐)。Kafka将消息持久化到磁盘中,并对消息创建了备份保证了数据…

kafka 命令行操作大全

kafka 命令行操作大全 一、集群相关常用命令二、topic相关常用命令2.1 脚本&参数简介2.2 举例 三、生产者命令行常用操作3.1 脚本&参数简介3.2 举例发送消息 四、生产者命令行常用操作4.1 脚本&参数简介4.2 举例消费消息 这里主要讲命令行操作,如何安装…

Kafka版本讲解

1 文章背景 在维护一些老项目时候,总会听到 kafka 0.8版本,0.10版本,会感觉到很奇怪,为什么版本号 不是从1.0.0开始,本篇文档重点阐述一下kafka非主流的版本号 2 参考文章 Apache Kafka 3 个人理解 kafka对外发布第一个版本的时候版本号就不…

Kafka消费模式详解

美图欣赏: ​​​​​​ 一.Kafka是什么 在流式计算中,Kafka一般用来缓存数据,spark通过消费Kafka的数据进行计算。 1)Apache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目…

Hadoop生态之kafka史上最全详解!

1、消息队列的介绍 消息(Message):是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。 消息队列(Message Queue)&#x…

Kafka为什么依赖Zookeeper?

前言:在我们了解kafka为什么依赖zookeeper之前,首先要先知道zookeeper自身的一个基础架构和作用 “所有一切的努力都是为了自己的名字” Zookeeper概念扫盲 基本概述 ZooKeeper是一个分布式协调服务,它的主要作用是为分布式系统提供一致性…

Kafka能干什么,为什么如此受欢迎?

一、Kafka是什么? Kafka是最初由Linkedin公司开发的一个分布式、分区的、多副本的、多订阅者,由Scala和Java编写的基于zookeeper协调的分布式流处理平台,常见可以用于web日志、访问日志,消息服务等等,Linkedin于2010年将其贡献给了…

Kafka集群部署

文章目录 一、Kafka集群部署二、启动Kafka集群 Kafka是一个高吞吐量、基于ZooKeeper(ZooKeeper维护Kafka的broker信息)的分布式发布订阅信息系统,它可以处理消费者在网站中的所有动作(网页浏览,搜索和其他用户的行动&a…