数据库原理 04关系模型之关系代数

目录

1. 关系代数之基本操作

2. 关系代数之扩展操作

3. 关系代数之组合与应用训练

4. 关系代数之复杂扩展操作(选学)


基本内容

关系代数运算特点

  • 关系代数操作以一个或多个关系为输入结果是一个新的关系。

  • 用对关系的运算来表达查询,需要指明所用操作, 具有一定的过程性

为什么提出关系代数?

数据库原理 04关系模型之关系代数_第1张图片

关系代数三要素:运算对象、运算结果、运算符

1. 关系代数之基本操作

关系代数操作:集合操作和纯关系操作

(1)集合操作

数据库原理 04关系模型之关系代数_第2张图片

(2)纯关系操作

数据库原理 04关系模型之关系代数_第3张图片

关系代数满足的属性:并相容性

对于并差交操作来讲要满足并相容性

  • 关系R和关系S的属性数目相同

  • 对于任意的i关系R的第i个属性和关系S的第i个属性的域相同

例如:下面两个关系属性数目、类型(也就是域相同满足并相容性)  



并操作

汉语中 或者....或者.... 的意思 

数据库原理 04关系模型之关系代数_第4张图片

差(Difference)操作

是...但不含...

R - S, 它由出现在关系R中但不出现在关系S中的元组构成。

数据库原理 04关系模型之关系代数_第5张图片

广义笛卡尔积 (Cartesian Product)

数据库原理 04关系模型之关系代数_第6张图片

行列无关:

新的 度/属性 和 元组 数:

度:                           元组:

                 

选择操作(Select):

给一个关系R同时给定一个选择的条件condition(简记为con)选择运算的结果也是关系。

他从关系中选择满足给顶条件con的元组。

数学描述:

例如:

数据库原理 04关系模型之关系代数_第7张图片            数据库原理 04关系模型之关系代数_第8张图片 

数据库原理 04关系模型之关系代数_第9张图片

数据库原理 04关系模型之关系代数_第10张图片

数据库原理 04关系模型之关系代数_第11张图片

投影

从给定关系中选择某些列作为新的关系

数据库原理 04关系模型之关系代数_第12张图片

对于关系来讲:是一个集合,集合当中的元素是不能重复的

数据库原理 04关系模型之关系代数_第13张图片

数据库原理 04关系模型之关系代数_第14张图片

数据库原理 04关系模型之关系代数_第15张图片

小结

数据库原理 04关系模型之关系代数_第16张图片

2. 关系代数之扩展操作

关系模型之扩展操作(对基本操作进行组合就能得到)

交操作(Intersection)

数据库原理 04关系模型之关系代数_第17张图片

原因:差操作不是简单的加减法

抽象的

数据库原理 04关系模型之关系代数_第18张图片

语义的

数据库原理 04关系模型之关系代数_第19张图片

连接操作(theta-Join

数据库原理 04关系模型之关系代数_第20张图片

数据库原理 04关系模型之关系代数_第21张图片

抽象的

数据库原理 04关系模型之关系代数_第22张图片

语义的

数据库原理 04关系模型之关系代数_第23张图片

逻辑过程

数据库原理 04关系模型之关系代数_第24张图片

但是其实物理上并没有第二步,直接第三步是可以做到的。

需要更名操作,有的把更名操作也作为基本操作之一那么就是六种基本操作。

数据库原理 04关系模型之关系代数_第25张图片

数据库原理 04关系模型之关系代数_第26张图片

等值连接(Equi-Join)

数据库原理 04关系模型之关系代数_第27张图片

抽象等值连接

数据库原理 04关系模型之关系代数_第28张图片

语义等值连接

数据库原理 04关系模型之关系代数_第29张图片

逻辑过程

数据库原理 04关系模型之关系代数_第30张图片

自然连接(Natural-Join)

没有加条件,有默认的条件(这个是最常用的)也就是说关系R和关系S中一定是有属性名相同的属性.

数据库原理 04关系模型之关系代数_第31张图片

抽象的自然连接

数据库原理 04关系模型之关系代数_第32张图片

语义的自然连接

数据库原理 04关系模型之关系代数_第33张图片

操作步骤

数据库原理 04关系模型之关系代数_第34张图片

数据库原理 04关系模型之关系代数_第35张图片

多次自然连接

数据库原理 04关系模型之关系代数_第36张图片

小结

使用连接操作比使用积操作选择投影操作要高效一些。

数据库原理 04关系模型之关系代数_第37张图片

3. 关系代数之组合与应用训练

关系代数操作之组合与应用训练

集合操作思维训练

数据库原理 04关系模型之关系代数_第38张图片

数据库原理 04关系模型之关系代数_第39张图片

误区

数据库原理 04关系模型之关系代数_第40张图片

解决办法(连接自身的等值连接:学号相同)

错误:自然连接的结果仍然是三个属性所以选择操作之后仍然是空

错误:除了只学习课程号为002的没有查出来,其他都查出来。

另一种思路:把学过002号课程的学生找出来从学生表中差去的思路

错误:不满足差运算的并相容性(属性数目是不同的,语法错误)

正确做法(语法语义都是正确的)

关系代数书写的思维

数据库原理 04关系模型之关系代数_第41张图片

数据库原理 04关系模型之关系代数_第42张图片

4. 关系代数之复杂扩展操作(选学)

关系代数之复杂扩展操作

关系的除运算(Division)

 

数据库原理 04关系模型之关系代数_第43张图片

数据库原理 04关系模型之关系代数_第44张图片

数据库原理 04关系模型之关系代数_第45张图片

数据库原理 04关系模型之关系代数_第46张图片

数据库原理 04关系模型之关系代数_第47张图片

数据库原理 04关系模型之关系代数_第48张图片

数据库原理 04关系模型之关系代数_第49张图片

结果是一样的,因为S#,C#是候选键 。

外连接(Outer-Join)

数据库原理 04关系模型之关系代数_第50张图片

数据库原理 04关系模型之关系代数_第51张图片

按上式连接的结果,003号教师的姓名和工资信息丢失了。

因为在Teach表中没有和003号教师相匹配的元组,元组003号教师(又称为失配元组)不能和其他表的元组形成连接元组。

怎样保证使003号教师信息仍旧出现在结果关系中呢?

这就需要外连接

数据库原理 04关系模型之关系代数_第52张图片

数据库原理 04关系模型之关系代数_第53张图片

外连接操作

进一步的区分:


数据库原理 04关系模型之关系代数_第54张图片

操作示例:

其实左外连接就是保持左侧不丢失,没有配对的就和空配对。其他同理

数据库原理 04关系模型之关系代数_第55张图片

数据库原理 04关系模型之关系代数_第56张图片

数据库原理 04关系模型之关系代数_第57张图片

数据库原理 04关系模型之关系代数_第58张图片

数据库原理 04关系模型之关系代数_第59张图片

数据库原理 04关系模型之关系代数_第60张图片

数据库原理 04关系模型之关系代数_第61张图片

数据库原理 04关系模型之关系代数_第62张图片

你可能感兴趣的:(数据库,笔记)