文章目录

  • 1 传统的关系运算
    • 1.1 并 union
    • 1.2 交 intersection
    • 1.3 差 except
    • 1.4 笛卡尔积 cartesian product
    • 1.5 传统关系运算举例
  • 2 专用的关系运算
    • 2.1 选择 selection
    • 2.2 投影 projection
    • 2.3 连接 join
    • 2.4 除 division
    • 2.5 专用关系运算举例

关系数据库的关系代数运算符有8种,分为两大类,如下表所示:

分类 运算符 含义
传统关系运算符 ∪∪∪
−−−
∩∩∩
××× 笛卡尔积
专用关系运算符 σ 选择
投影
连接
÷

1 传统的关系运算

传统的集合运算是二元运算,包括并、差、交、笛卡尔积4种运算。设有两关系R、S。

1.1 并 union

关系R与关系S的并记作:R∪S={t∣t∈R∨t∈S}R\cup S=\{t\ |\ t\in R \lor t\in S\}R∪S={t ∣ t∈R∨t∈S}即合并R和S所有元组

1.2 交 intersection

关系R与关系S的交记作:R∩S={t∣t∈R∧t∈S}R\cap S=\{t\ |\ t\in R \land t\in S\}R∩S={t ∣ t∈R∧t∈S}关系的交也可用差来表示:R∩S=R−(R−S)R\cap S=R-(R-S)R∩S=R−(R−S)即取出R与S中共有的元组

1.3 差 except

关系R与关系S的差记作:R−S={t∣t∈R∧t∉S}R- S=\{t\ |\ t\in R \land t\notin S\}R−S={t ∣ t∈R∧t∈/​S}即去掉R中属于S的元素

1.4 笛卡尔积 cartesian product

关系R与关系S的并记作:R×S={tRtS⌢∣tR∈R∧tS∈S}R\times S=\{\overset{\large\frown}{t_Rt_S}\ |\ t_R\in R \land t_S\in S\}R×S={tR​tS​⌢​ ∣ tR​∈R∧tS​∈S}这里的笛卡尔积指的是广义笛卡尔积,对元组进行笛卡尔积有点类似于小学数学课上学过的握手游戏。

对于R×SR\times SR×S来说,表示每个R中的元组都要与S中的元组连接一次

1.5 传统关系运算举例

设RRR:

color pattern size
A 5
B 10
B 5

SSS:

color pattern size
B 10
C 10
B 5

则有:

  • RRR与SSS的并R∪SR\cup SR∪S:
color pattern size
A 5
B 10
B 5
C 10
  • RRR与SSS的交R∩SR\cap SR∩S:
color pattern size
B 10
B 5
  • RRR与SSS的差R−SR- SR−S:
color pattern size
A 5
  • RRR与SSS的笛卡尔积R×SR\times SR×S:
R.color R.pattern R.size S.color S.pattern S.size
A 5 B 10
A 5 C 10
A 5 B 5
B 10 B 10
B 10 C 10
B 10 B 5
B 5 B 10
B 5 C 10
B 5 B 5

2 专用的关系运算

专用的关系运算符包括选择、投影、连接、除运算

在具体介绍运算符之前为了方便表达,先引入几个符号:

  • RRR:关系。R={r1,r2,...,rn}R=\{r_1,r_2,...,r_n\}R={r1​,r2​,...,rn​},其中rir_iri​表示RRR中的列。类似的,SSS等符号也代表一个关系
  • ttt:元组。ttt代表RRR的某一行,称ttt为元组。
  • t[ri]t[r_i]t[ri​]:分量。t[ri]t[r_i]t[ri​]表示ttt行中rir_iri​列的值,称t[ri]t[r_i]t[ri​]为分量。
  • Zt[ri]Z_{t[r_i]}Zt[ri​]​:象集。Zt[ri]Z_{t[r_i]}Zt[ri​]​表示ttt行中除rir_iri​列外其他列的值,称Zt[ri]Z_{t[r_i]}Zt[ri​]​为象集。
  • θ\thetaθ:比较运算符。比较运算符有6种,分别是===、>>>、≥\geq≥、<<<、≤\leq≤、<><><>
2.1 选择 selection

选择关系运算记作:σriθt[ri](R)={t∣t∈R∧riθt[ri]=true}\sigma_{r_i\theta t[r_i]}(R)=\{\ t\ |\ t\in R\land r_i\theta t[r_i]=true\}σri​θt[ri​]​(R)={ t ∣ t∈R∧ri​θt[ri​]=true}即取出RRR表中rir_iri​列的值与t[ri]t[r_i]t[ri​]具有θ\thetaθ关系的行
例如:
σSage<20(Student)\sigma_{Sage<20}(Student)σSage<20​(Student)表示取出StudentStudentStudent表中SageSageSage列值小于数值20的行
σSname=′李勇′(Student)\sigma_{Sname='李勇'}(Student)σSname=′李勇′​(Student)表示取出StudentStudentStudent表中SnameSnameSname列值等于字符串李勇的行

2.2 投影 projection

投影关系运算记作:∏ri(R)={t[ri]∣t∈R}\prod\ _{r_i}(R)=\{t[r_i]\ |\ t\in R\}∏ ri​​(R)={t[ri​] ∣ t∈R}即取出RRR表中的rir_iri​列
例如:
∏Sage(Student)\prod\ _{Sage}(Student)∏ Sage​(Student)表示从表StudentStudentStudent取出SageSageSage列形成新的关系
∏Sage,Sname(Student)\prod\ _{Sage,Sname}(Student)∏ Sage,Sname​(Student)表示从表StudentStudentStudent取出SageSageSage和SnameSnameSname列形成新的关系

2.3 连接 join

连接关系运算记作:riθrjR⋈S={tRtS∣tR∈R∧tS∈R∧tR[ri]θtS[rj]⌢}\overset{R\Join S}{_{r_{i}\theta r_{j}}}=\{\overset{\large\frown}{t_Rt_S\ |t_R\in R \land t_S\in R\land t_R[r_i]\theta t_S[r_j]\ }\}ri​θrj​​R⋈S​={tR​tS​ ∣tR​∈R∧tS​∈R∧tR​[ri​]θtS​[rj​] ⌢​}即选取RRR与SSS的笛卡尔积中tR[ri]t_R[r_i]tR​[ri​]与tS[rj]t_S[r_j]tS​[rj​]满足关系θ\thetaθ的行

连接有四种特殊形式:

  • 非等值连接。就是指θ\thetaθ不为等号的连接,例如ri<rjR⋈S\overset{R\Join S}{_{r_{i}< r_{j}}}ri​<rj​​R⋈S​表示连接满足R.ri<S.rjR.r_i<S.r_jR.ri​<S.rj​关系的RRR与SSS中的元组
  • 等值连接。就是指θ\thetaθ为等号的连接,例如ri=rjR⋈S\overset{R\Join S}{_{r_{i}=r_{j}}}ri​=rj​​R⋈S​表示连接满足R.ri=S.rjR.r_i=S.r_jR.ri​=S.rj​关系的RRR与SSS中的元组
  • 自然连接。自然连接是一种特殊的等值连接,就是rir_iri​与rjr_jrj​的属性名一致且值相等的等值连接,并在连接结果中去掉重复列,而在一般的等值连接中只需要满足rir_iri​与rjr_jrj​的值相等即可,记作R⋈SR\Join SR⋈S。
  • 外连接。外连接是一种特殊的自然连接,在自然连接的过程中,若连接后元组里的某个属性出现Null值就会舍去该元组,而外连接则会保留该元组。外连接分为三种:
  • 1、外连接。保留两边关系自然连接后出现Null值属性的元组,记作R:⋈:SR:\Join: SR:⋈:S
  • 2、左外连接。保留左边关系自然连接后出现Null值属性的元组,记作R:⋈SR:\Join SR:⋈S
  • 3、右外连接。保留右边关系自然连接后出现Null值属性的元组,记作R⋈:SR\Join: SR⋈:S
2.4 除 division

除关系运算记作:R÷S={tR[ri]∣tR∈R∧∏rj(S)⊆rjtR[ri]}R\div S=\{\ t_R[r_i]\ |\ t_R\in R\land\prod\ _{r_j}(S)\subseteq r_{j\ t_R[r_i]}\ \}R÷S={ tR​[ri​] ∣ tR​∈R∧∏ rj​​(S)⊆rj tR​[ri​]​ }即取出RRR中使R.rjR.r_jR.rj​完全等于S.rjS.r_jS.rj​的R.riR.r_iR.ri​元组
例如:
∏Sname,Sage(R)÷∏SageS\prod\ _{Sname,Sage}(R)\div \prod\ _{Sage}S∏ Sname,Sage​(R)÷∏ Sage​S表示取RRR投影中使R.SageR.SageR.Sage完全等于S.ageS.ageS.age的R.nameR.nameR.name元组,形成新的关系

2.5 专用关系运算举例

设RRR:

color pattern size
A 5
B 6
C 8
D 12

SSS:

pattern weight
A 3
B 7
C 10
C 2
E 2
  • RRR的选择,σcolor=′红′(R)\sigma_{color='红'}(R)σcolor=′红′​(R),取出RRR表中colorcolorcolor列值为字符串’红’的行形成新的关系:
color pattern size
A 5
B 6
  • RRR的投影,∏color,size(R)\prod\ _{color,size}(R)∏ color,size​(R),从表RRR取出color,sizecolor,sizecolor,size列形成新的关系:
color size
5
6
8
12
  • RRR与SSS的连接

非等值连接,size<weightR⋈S\overset{R\Join S}{_{size< weight}}size<weight​R⋈S​,连接满足size<weightsize< weightsize<weight关系的RRR与SSS中的元组

color R.pattern size S.pattern weight
A 5 B 7
A 5 C 10
B 6 B 7
B 6 C 10
C 8 C 10

等值连接,R.pattern=S.patternR⋈S\overset{R\Join S}{_{R.pattern= S.pattern}}R.pattern=S.pattern​R⋈S​,连接满足R.pattern=S.patternR.pattern= S.patternR.pattern=S.pattern关系的RRR与SSS中的元组

color R.pattern size S.pattern weight
A 5 A 3
B 6 B 7
C 8 C 10
C 8 C 2

自然连接,R⋈SR\Join SR⋈S,连接RRR与SSS中同名属性值相等的元组:

color pattern size weight
A 5 3
B 6 7
C 8 10
C 8 2

外连接,R:⋈:SR:\Join: SR:⋈:S,保留两边关系自然连接后出现Null值属性的元组:

color pattern size weight
A 5 3
B 6 7
C 8 10
C 8 2
D 12 null
null E null 2

左外连接,R:⋈SR:\Join SR:⋈S,保留左边关系自然连接后出现Null值属性的元组:

color pattern size weight
A 5 3
B 6 7
C 8 10
C 8 2
D 12 null

右外连接,R⋈:SR\Join: SR⋈:S,保留右边关系自然连接后出现Null值属性的元组:

color pattern size weight
A 5 3
B 6 7
C 8 10
C 8 2
null E null 2
  • RRR的除运算
    设有除关系KKK
color size
5
6

则R÷KR\div KR÷K表示取出RRR中使R.colorR.colorR.color完全等于S.colorS.colorS.color、R.sizeR.sizeR.size完全等于S.sizeS.sizeS.size的R.parttenR.parttenR.partten元组

partten
A

关系数据库之关系代数相关推荐

  1. [渝粤教育] 厦门大学 大数据技术原理与应用 参考 资料

    教育 -大数据技术原理与应用-章节资料考试资料-厦门大学[] 第1章 大数据概述 单元测验 1.[单选题]第三次信息化浪潮的标志是: A.个人电脑的普及 B.互联网的普及 C.云计算.大数据.物联网技 ...

  2. 大数据技术原理与应用课后题(林子雨)

    大数据技术原理与应用(林子雨) 第1章 大数据概述 1单选(2分) 第三次信息化浪潮的标志是: A.个人电脑的普及 B.云计算.大数据.物联网技术的普及 C.虚拟现实技术的普及 D.互联网的普及 正确 ...

  3. 大数据技术原理与应用(林子雨)-NoSQL数据库单元测验

    1单选(2分) 下列关于NoSQL数据库和关系型数据库的比较,不正确的是得分/总分 A. NoSQL数据库缺乏统一的查询语言,而关系型数据库有标准化查询语言 B. NoSQL数据库具有弱一致性,关系型 ...

  4. 【大数据处理技术】期末复习整理

    所用教材:<大数据技术原理与应用--概念.存储.处理.分析与应用(第2版)>,由厦门大学计算机科学系林子雨编著. 教材官网:http://dblab.xmu.edu.cn/post/big ...

  5. 大数据与云计算学习(2)

    四.分布式数据库HABSE 1.请阐述HBase和传统关系数据库的区别 正确答案: 我的答案: (1)数据类型:关系数据库采用关系模型,具有丰富的数据类型和存储方式,HBase则采用了更加简单的数据模 ...

  6. 大数据技术原理与应用——练习题

    第一章 大数据概述 1第三次信息化浪潮的标志是: A.互联网的普及 B.云计算.大数据.物联网技术的普及 C.个人电脑的普及 D.虚拟现实技术的普及 2就数据的量级而言,1PB数据是多少TB? A.1 ...

  7. 21年研究生入学考试(哈尔滨工程大学)复试准备——《数据库系统》知识点总结

    前言 到此为止,我完成了复试科目:数据库的两轮复习,第一轮<白皮书>没有到手,我根据手里的课本和中国大学MOOC战德臣教授的视频进行复习.我使用的是岳丽华.金培权.万寿红翻译的斯坦福大学的 ...

  8. 大数据存储技术期末复习

    单选题 1.以下关于云计算.大数据和物联网之间的关系,论述错误的是: A.物联网可以借助于云计算实现海量数据的存储 B.物联网可以借助于大数据实现海量数据的分析 C.云计算.大数据和物联网三者紧密相关 ...

  9. 测控计算机三级有用吗,测控专业与计算机三级

    测控专业与计算机三级 答案:2  信息版本:手机版 解决时间 2019-10-02 13:40 已解决 2019-10-01 21:00 我是学测控技术与仪器专业的,计算机二级报考的是VB,现在我想报 ...

  10. 大数据技术原理与应用(林子雨)MOOC作业与检验答案

    第1章 大数据概述 1单选(2分) 第三次信息化浪潮的标志是: A.个人电脑的普及 B.云计算.大数据.物联网技术的普及 C.虚拟现实技术的普及 D.互联网的普及 正确答案:B你选对了 2单选(2分) ...

最新文章

  1. Objective-c 网络编程1 Web请求和响应
  2. mysql 索引合并
  3. Linux下的I/O复用与epoll详解
  4. 打包指令_Linux系统常用指令总结
  5. 树莓派Raspberry Pi OS开机自启动脚本
  6. cesium米转换经纬度_Cesium 坐标系转换
  7. python动态类型的坑_在Python中避免动态类型错误的策略是什么(NoneType没有属性x)?...
  8. /usr/bin/ld: cannot find -lmysqlclient解决方法
  9. AEC产业未来发展的三大趋势,数字化只是其中之一
  10. 本周大新闻|佳能AR头显MREAL X1发布,Quest手势追踪2.0来袭
  11. 深入解读5G关键技术
  12. 无线ap上网设置教程
  13. 女朋友生日java程序_★★女朋友要过生日了!我想用java为她写一个程序,一举两得啊! 希望大家多提建议啊!谢谢!!!...
  14. C++ SuperLU 混合编程
  15. 手把手教你用深度学习做物体检测(四):模型使用
  16. python爬取网站的某一句话_Python实现JS解密并爬取某音漫客网站
  17. 余额宝内幕:一个屌丝公司如何找到千亿级痛点
  18. Android之SeekBar(0在中间)
  19. python求平方根的三种方法
  20. pycharm如何刷新项目文件

热门文章

  1. [经验教程]iPhone苹果手机电池健康度怎么查询及如何更换苹果iPhone手机电池恢复健康度到100%?
  2. 淘宝/天猫获取商品历史价格信息 API 返回值说明
  3. 基于ThinkPHP6搭建的后台管理系统
  4. matplotlib绘制随机漫步
  5. Java与咖啡豆 - Java命名由来
  6. 解决视频资源音乐资源在Android模拟器中不能播放的问题
  7. POJ1091跳蚤(容斥 + 唯一分解 + 快速幂)
  8. 误Ghost后的分区恢复
  9. Android锁屏勒索病毒分析(4)秒抢红包
  10. 用友服务器的系统管理,用友软件系统管理模块常见问题解析及方法