操作目录

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

关系代数的八种基本运算

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

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

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

关系代数基本运算 数据库相关推荐

  1. 关系代数基本运算_关系代数的基本和附加运算

    关系代数基本运算 Definition 定义 Every DBMS must define a query language to enable users to access the data wh ...

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

    文章目录 五中基本的关系代数操作 并(Union) 差(Difference) 广义笛卡尔积(Extended Cartesian Product) 投影(Projection) 选择(Selecti ...

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

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

  4. 关系代数(数据库笔记)

    象集的语义为X的每一个分量所有拥有的属性组Y的所有信息. 如Sno,Cno中某一个分量的象集代表:某一个学生编号对应的所有选课编号.

  5. NCRE 四级数据库工程师教程,例题加解析,干货

    干货 1.下列关于数据库基本概念的叙述中,哪一条是错误的? A)  "数据库"可理解为是在计算机存储设备中按一定格式存放数据的仓库 B)  数据库是按一定结构组织并可以长期存储在计 ...

  6. 【数据库】期末复习:SQL语句、关系代数的运算、范式的定义和判断、求最小函数依赖集、ER图转关系模式

    文章目录 SQL语句 查询select 其他 视图 关系代数的运算 并.差.笛卡尔积.投影和选择 连接 自然连接 笛卡尔积 详细版(如果完全不了解就看这里) 范式的定义和判断 如何求候选码 一些例题 ...

  7. 【SQL】sql的数学基石之关系代数与关系运算详解

    本专栏将从基础开始,循序渐进,讲解数据库的基本概念以及使用,希望大家都能够从中有所收获,也请大家多多支持. 专栏地址: 数据库必知必会 如果文章知识点有错误的地方,请指正!大家一起学习,一起进步. 文 ...

  8. Oracle数据库:刷题错题本,数据库的各种概念

    Oracle数据库:刷题错题本,数据库的各种概念 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle ...

  9. 数据库设计 Step by Step (2)——数据库生命周期

    引言:数据库设计 Step by Step (1)得到这么多朋友的关注着实出乎了我的意外.这也坚定了我把这一系列的博文写好的决心.近来工作上的事务比较繁重,加之我期望这个系列的文章能尽可能的系统.完整 ...

最新文章

  1. 腾讯员工:越来越多的新生都想要学计算机专业,好日子长不了
  2. python 查看安装的第三方库的版本号
  3. 编程科普|你知道的关于 Python 的那些知识,可能全错了!
  4. C#调用vbs脚本实现Windows版Siri
  5. JFreeChart(五)之XY图
  6. 动态规划——方格取数(hdu1565)
  7. HDU1276 士兵队列训练问题【模拟+array+vector+list】
  8. VS2019调试查看变量_机器人调试(六十六)
  9. ArcGIS API for JS geodesicUtils.geodesicAreas 计算面积出现负值情况记录
  10. 购物搜索引擎架构的变与不变
  11. springboot + mybatis-plus + quaryz 数据库持久化任务调度
  12. 学习深度学习过程中的一些经验与方法
  13. vue 中使用 vue-amap(高德地图) 【'AMapUI' is not defined 】
  14. Couch的MapReduce查询
  15. 学习单片机,通常要学哪些知识点?(附送75块带屏开发板)
  16. System.setOut(ps)重定义了输出流后,如何重定向控制台输出
  17. vue3 项目中 watch 各种不触发
  18. 膨胀卷积(空洞卷积)
  19. 海盗分金-动态规划实现
  20. CP1H通过RS232连电脑上的威伦EB8000在线模拟

热门文章

  1. 基于springboot的spire.pdf添加印章
  2. 灵性图书馆:好书推荐-《地球编年史第一部》
  3. 通过浏览器直接打开iOS/Android App 应用程序 - Cundong's log - 开源中国社区
  4. CSS的几种定位方式
  5. 关于clouddrive的一些事情
  6. Java文件操作的基本概念和简单操作
  7. Java实现超级玛丽小游戏教程
  8. Repeatable元注解
  9. C#如何判断当前输入的内容包含全角输入法的内容?
  10. 给大家来几个辣眼睛的代码(嘿嘿嘿)