转载:https://blog.csdn.net/zgcr654321/article/details/82077809

正文如下:

各种运算符如下:

数据库中每行就是一个元组,每列就是一个属性。

数据库的传统集合运算包括:并、差、交、笛卡尔积运算。这四种运算都与数学上的同名运算概念相似。

并:

差:

交:

笛卡尔积:

广义笛卡尔积(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行。

下面举一个例子:

关系表R和S如下图所示:

R并S、R减S、R交S、选择、R与S的笛卡尔积结果如下所示:

选择B>'4'(R),即选择语句的条件,对R的关系做水平分割,选择R中符合条件的元组。

数据库的专门关系运算有:选择(对关系进行水平分割)、投影(对关系进行垂直分割)、连接、自然连接(关系的结合)、除运算等。

选择(selection):

选择就是"筛选行"。选择一般要对一张表选择符合条件的行(但包含所有列)。

举例:

投影(projection):

投影就是"筛选列"。一个数据库表,如仅希望得到其一部分的列的内容(但全部行),就是投影。

举例:

除法(division):

记为R÷S,它是笛卡尔积的逆运算。设关系R和S分别有r列和s列(r>s,且s≠0),那么R÷S的结果有(r-s)个列,并且是满足下列条件的最大的表:其中每行与S中的每行组合成的新行都在R中。注意有时关系之间的除法也有"余数",可能S×T的结果为R的一部分(最大的一部分),R中的多余部分为"余数"。

举例:

运算过程:

C, D是关系S中的两个属性, 故在R集合中对除了C, D的属性, 即A, B两属性进行投影, 得到a, b; b, c; e, d;这三组, 然后用这个结果与关系S进行笛卡尔积运算, 发现b c c d这组在关系R中没有, 其余a, b; e, d; 做的运算在R中存在. 因此最后结果为a, b; e, d。

连接(join):

两表笛卡尔积的结果比较庞大,实际应用中一般仅选取其中一部分的行,选取两表列之间满足一定条件的行,就是关系之间的连接。

根据连接条件的种类不同,关系之间的连接分为等值连接、大于连接、小于连接、自然连接。

条件是类似于"B列=D列"的"某列=某列"的条件,就是等值连接;

条件是"某列>某列"的,就是大于连接;

条件是"某列<某列"的,就是小于连接。

自然连接是不提出明确的连接条件,但"暗含"着一个条件,就是"列名相同的值也相同"。在自然连接的结果表中,往往还要合并相同列名的列。当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的属性。

举一个等值连接的例子:

关系R和S如下图所示:

对关系R、S按条件"R表的B列=S表的B列"进行连接的结果(等值连接):

小于连接的结果(B<D):

自然连接的结果(自然连接暗含的条件是R.B=S.B且R.C=S.C,因为R、S中有同名的2列B、C):

多个条件之间可用"∧"表示"且",即两边的条件必须同时成立。

如"C>4∧D>3",表示"C列值>4,且D列值>3",二者需同时满足。

用"∨"表示"或",即两边的条件有一个成立即可。

例如"性别='女'∨年龄<20"表示"性别为'女'或者年龄在20岁以下"。
--------------------- 
作者:一骑走烟尘 
来源:CSDN 
原文:https://blog.csdn.net/zgcr654321/article/details/82077809 
版权声明:本文为博主原创文章,转载请附上博文链接!

数据库的传统集合运算(并、差、交、笛卡尔积)和专门的关系运算(选择、投影、连接、除运算)相关推荐

  1. 数据库系统概论--读书笔记--8 关系运算: 选择 投影 连接 除运算

    专门的关系运算: 选择 投影 连接 除运算 1.设关系模式为R(A1,A2,⋯ ,An)R(A_1,A_2,\cdots,A_n)R(A1​,A2​,⋯,An​), 一个关系设为R.t∈Rt\in R ...

  2. mysql关系运算选择投影连接,[转载]选择、投影和连接运算(关系数据库)

    一.选择 选择又称为限制,它是在关系R中选择满足给定条件的诸元组,记作: σf(R)={t|t∈R∧F(t)='真'} 其中F表示选择条件,它是一个逻辑表达式,取逻辑值'真'或'假'. 逻辑表达式F的 ...

  3. mysql关系运算选择投影连接_数据库关系代数操作 并 差 积 选择 投影 连接等操作...

    首先我们需要明白,关系代数操作分为下面两种操作 并操作: 首先需要满足并相容性,并相容性指的是:关系R与关系S存在相容性,当且仅当: (1) 关系R和关系S的属性数目必须相同: (2) 对于任意i,关 ...

  4. 【数据库概论】关系代数(传统集合运算和专门关系运算)

    一.前言 概念:关系代数是一种抽象的查询语言,它用对关系的运算来表达查询. 关系代数的运算按运算符不同可分为传统的集合运算和专门关系运算两类. 如下图 关系代数中的一些符号 二.集合运算符 传统的集合 ...

  5. 数据库的交、并、差、笛卡尔积运算(代码实现)

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

  6. mysql 投影运算_数据库查询 - 通俗易懂解释:选择、投影、并、差、笛卡尔积、连接 - 小黑电脑...

    关系代数运算 关系代数用对关系的运算来表达查询,运算对象是关系,结果得到关系 关系可以理解为一张二维表,例如一张学生表,就是一个关系,关系代数运算就是我们写sql的一些查询操作,操作表生成新的表或者视 ...

  7. Generics的方法参数,Set 两集合进行并、交、差

    一.利用Generic方法参数,对两个集合进行并,交,差,并-交 1.union 并:1>在方法体增加一个集合,构造函数的初始化数据,用方法里传过来的集合. 2>再加一个集合addAll( ...

  8. 云开发数据库VS传统数据库丨云开发101

    云开发数据库与传统数据库的不同 在小程序·云开发中,最核心的便是三大组件:数据库.云存储和云函数,从今天开始,我们将开始隔日更的专栏文章,云开发101,在第一周,我们将从最最核心的数据库开始说起. 云 ...

  9. 云数据库与传统数据库有什么区别

    背景 什么是数据库?传统数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合.这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序, ...

最新文章

  1. 菲尔兹奖数学家丘成桐:人工智能中的数学理论尚无很大突破
  2. 2012年4月当选微软MVP的CSDN会员名单揭晓!
  3. python代码编辑器排行榜-4款好用的Python编辑器,你用过几个?
  4. C#的显式接口和隐式接口
  5. 在同一个Linux上配置多个git账户
  6. PATH和path,傻傻分不清
  7. SpringBoot项目整合Retrofit最佳实践,这才是最优雅的HTTP客户端工具!
  8. css实现文本过长时自动添加省略号
  9. linux 3.16内核下载,linux块设备驱动程序示例(适用于高版本内核3.16.0 - 3.19.0等,亲测可用)...
  10. cr3格式是什么意思_佳能rp的cr3如何打开?修图为什么要用raw格式?转码又是什么?...
  11. tampermonkey(油猴)跨域发送请求
  12. Visual Studio Code讲解(二) ssh远程操作电脑
  13. EZCast v2.8.0.1206
  14. 从零开始开发微信小程序(四):微信小程序绑定系统账号并授权登录之后台端...
  15. 测试打印 lua 的 _G 所有显示的字段内容
  16. 埋石图根点lisp代码_速腾矿图 用户手册.pdf
  17. 空调遥控器c语言源码,51单片机格力空调遥控器设计源码
  18. 计算机应用基础模块5 acess形考答案,2018年3月计算机二级考试Access综合试题五
  19. unity导入的模型的贴图十分暗看不清
  20. 电磁波传播相位是否会变化,关于电磁波的相位不变性和多普勒效应的讨论

热门文章

  1. iOS libsqlite3.0.tbd和libsqlite3.tbd的区别
  2. a = [1,2,3,4,5,6,7,8] for i in a: a.remove(i) print(a)求输出结果
  3. 塔米狗2022年增资扩股协议书
  4. nrf52832概述
  5. ggplot绘制柱状图 python_ggplot2|绘制GO富集柱形图
  6. 【转】自然常数“e”,工程中的自然数“1”
  7. Effective C++ 3nd笔记——资源管理
  8. 2019.08.15【NOIP提高组】模拟 A 组
  9. Adobe illustrator插件开发-所有模块列表-内部存在大量非公开的Suite-AI插件开发
  10. xls文件感染宏病毒的处理方法