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

目录

1. 关系代数之基本操作

2. 关系代数之扩展操作

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

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


基本内容

关系代数运算特点

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

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

为什么提出关系代数?

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

1. 关系代数之基本操作

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

(1)集合操作

(2)纯关系操作

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

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

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

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

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



并操作

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

差(Difference)操作

是...但不含...

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

广义笛卡尔积 (Cartesian Product)

行列无关:

新的 度/属性 和 元组 数:

度:                           元组:

                 

选择操作(Select):

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

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

数学描述:

例如:

             

投影

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

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

小结

2. 关系代数之扩展操作

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

交操作(Intersection)

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

抽象的

语义的

连接操作(theta-Join

抽象的

语义的

逻辑过程

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

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

等值连接(Equi-Join)

抽象等值连接

语义等值连接

逻辑过程

自然连接(Natural-Join)

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

抽象的自然连接

语义的自然连接

操作步骤

多次自然连接

小结

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

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

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

集合操作思维训练

误区

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

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

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

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

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

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

关系代数书写的思维

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

关系代数之复杂扩展操作

关系的除运算(Division)

 

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

外连接(Outer-Join)

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

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

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

这就需要外连接

外连接操作

进一步的区分:


操作示例:

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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值