关系代数基本运算 数据库

关系代数的八种基本运算

 并,就是将两个或多个表并连起来,需要注意的就是在并的过程中,我们并不是直接一笼统地并起来,而且还要对相同的元祖进行合并,即并操作后的表中,相同的元组不可多次出现(该操作需满足表之间数据结构相同的条件)
 例如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表!

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

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值