交(Intersection):

关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:R∩S={t|t∈R ∧ t∈S}

简单来说,运算结果就是两或多个实体集所共有的部分

并(Union):

关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n目关系(“n目”指关系模式中属性的数目为n) 。记作:R∪S={t|t∈R∨t∈S}

简单来说,运算结果为两或多个实体集加起来,然后重复的部分只留下一个

差(Difference)

关系R与关系S的差由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:R-S={t|t∈R∧┐t∈S}

简单来说,运算结果为,在表R中去掉表S也有的部分

广义笛卡尔积(Extended Cartesian Product)

两个分别为n目和m目关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组,记作:R×S={tr⌒ts| tr∈R∧ts∈S}

或记做R×S={(r1,…,rn ,s1,…,sm)∣((r1,…,rn)∈R∧(s1,…,sm)∈S)

r,s为R和S中的相应分量。

简单来说,就是把R表的第一行与S表第一行组合写在一起,作为一行。然后把R表的第一行与S表第二行依此写在一起,作为新一行。以此类推。当S表的每一行都与R表的第一行组合过一次以后,换R表的第二行与S表第一行组合,以此类推,直到R表与S表的每一行都组合过一次,则运算完毕。

如果R表有n行,S表有M行,那么笛卡尔积R×S有n×M行。

选取(Selection)

选取运算是单目运算,是根据一定的条件在给定的关系R中选取若干个元组,组成一个新关系,记作:σF(R)={t|t∈R∧F(t)为真}

其中,σ为选取运算符,F为选取的条件,它由运算对象(属性名、常数、简单函数)、算术比较运算符( > ,≥,<,≤,=,≠)和逻辑运算符(∨ ∧ ┐)连接起来的逻辑表达式,结果为逻辑值“真”或“假”。

选取运算实际上是从关系R中选取使逻辑表达式为真的元组,是从行的角度进行的运算。

简单地说,运算结果就是符合筛选条件的行

选择是根据给定的条件选择关系R中的若干元组组成新的关系,是对关系的元组进行筛选。选择运算示意图如下:

投影(Projection)

投影运算也是单目运算,关系R上的投影是从R中选择出若干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组。记作:ΠA(R)={t[A]|t∈R}

其中A为R中的属性列,Π为投影运算符。

从其定义可看出,投影运算是从列的角度进行的运算,这正是选取运算和投影运算的区别所在。选取运算是从关系的水平方向上进行运算的,而投影运算则是从关系的垂直方向上进行的。

简单地说,就是选取符合筛选条件的列,然后按照你所需要的顺序重新排列。

连接(Join)

连接运算是二目运算,是从两个关系的笛卡尔积中选取满足连接条件的元组,组成新的关系。

所谓自然连接就是在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉。即如果R与S具有相同的属性组Y,则自然连接可记作:R*S={t r⌒ts |tr∈R∧ts∈S∧tr[Y]=ts[Y]}

自然连接是在广义笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。

编程语言中,差、交、并、自然连接、选择、投影、笛卡尔积分别都是什么运算...相关推荐

  1. python为什么从0开始_为什么大多数编程语言中,索引都是从0开始

    为什么大多数编程语言中,索引都是从0开始 世界上绝大多数语言,但凡涉及到了索引这个概念,索引都是从0开始的,对于初学者,难免觉得别扭,毕竟生活中,但凡涉及到和顺序有关的概念,都是从1开始的,那么为什么 ...

  2. 在众多编程语言中,你可知哪种语言的安全性更高,安全漏洞最少?

    编程语言之争,一直以来是开发者社区的热议问题,因为开发者喜欢证明自己所使用的编程语言占据主导地位,尤其是安全性,只不过讨论的过程往往都伴随着双方的愤怒,最后不了了之.那么,你可知在众多热门编程语言中, ...

  3. python 计算机程序设计-计算机编程语言中,为何Python独得恩宠?

    原标题:计算机编程语言中,为何Python独得恩宠? 截止到2019年6月,根据Indeed网站的统计分析,美国Python开发人员的平均年薪为117,822美元. 相比Java从业者的年薪 $102 ...

  4. 数据库关系运算:自然连接,投影,交,除,并

    1.自然连接 自然连接(natural join) 自然连接是一种特殊的等值连接,他要求两个关系表中进行比较的必须是相同的属性列,无须添加连接条件,并且在结果中消除重复的属性列. sql语句:Sele ...

  5. 计算机二级投影运算怎么看,二级计算机中交、并、除、自然连接、投影、选择和笛卡尔积是怎么计算的?...

    交运算:集合论中,设A,B是两个集合,由所有属于集合A且属于集合B的元素所组成的元素,叫做子集A与集合B的交集(intersection),记作A∩B. 并运算:若A和B是集合,则A和B并集是有所有A ...

  6. 历史上的今天:编程语言中null引用的十亿美元错误

    这是Jerry 2021年的第 10 篇文章,也是汪子熙公众号总共第 281 篇原创文章. 今天是2021年1月17日,星期日,腊月初五. Jerry之前收到CSDN社区赠送的新年礼物,一本台历:&l ...

  7. 编程语言中,还有一种语言,那就是用中文来编程

    编程语言有很多种,不管是JavaScript,java.还是php.还是c语言.又或者是c++等等,这些语言基本都是差不多的有相似之处,只不过就是变了一种表达形式罢了.并且在语句和语法上都存在很多相似 ...

  8. 编程语言中,循环变量通常都用 i?你知道为什么吗?

    01 前天,我在朋友圈发了一个问题: 为什么编程中,循环变量通常都是用 i ? 没想到,回复的人这么多!要连翻好几页. 这个问题,有 2/3 的人回答正确,有少部分人知道,但是不太确定. 习惯性用 i ...

  9. 【编译原理】为什么编程语言中,标识符不能以数字开头?

    标识符不能以数字为开头, 是为了简化词法解析器设计和实现,规避词法解析中以数字开头的变量与数字解析冲突的问题. 如果两种类型的词,如果起始符号不同,那么可以很容易把二者区分开:如果起始符号相同,那么以 ...

最新文章

  1. 源码编译安装httpd及其常见错误
  2. USB基础---Linux USB驱动层次
  3. Effective C++ --8 定制new和delete 9杂谈讨论
  4. 微信小程序开发教程(基础篇)8-数据绑定下
  5. 华为鸿蒙智慧屏评价,华为智慧屏 S真实感受曝光评测,不看后悔死了!
  6. WPF将数据库和GridView绑定并更改GridView模板
  7. [mybatis]映射文件_select_返回集合(List,Map)
  8. Jenkins持续集成实践之java项目自动化部署
  9. java吧 博客系统_【Java】SpringMVC + Mybatis 实现的个人博客系统
  10. 中点击按钮新建widget_如何在iOS14中创建堆叠小组件?
  11. 推介英特尔® 黑带软件开发人员!
  12. 拓端tecdat|R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
  13. 【java】输入输出流
  14. python开源商城_Python 开源网上商城项目
  15. 【加拿大签证】加拿大访问学者签证所需材料【加拿大访学签证,超详细,看一篇就够了】
  16. JVM(3)-垃圾收集机制
  17. html里如何定位背景图片,Html+Css CSS中背景图片定位方法
  18. 华为服务器进入系统怎么退出安全模式,华为手机怎么进入和退出安全模式?华为手机进入安全模式按哪个键...
  19. QuickTime的桌面录制
  20. 快来西瓜创客吃瓜啦!

热门文章

  1. 最短路径——Floyd算法及优化(蓝桥杯试题集)
  2. 《C和指针》——字符串操作补、字符串内存操作
  3. 【AI视野·今日CV 计算机视觉论文速览 第240期】Thu, 4 Nov 2021
  4. 【C++】错误处理和异常处理
  5. 获得连接对象 jdbc 20210412_204123.mp4
  6. 安装fastdfs依赖包
  7. dj鲜生-18-发送邮件功能
  8. linux-目录结构
  9. 通过zabbix数据库批量查询服务器最新磁盘剩余空间
  10. MySQL查询冗余索引和未使用过的索引