赞
踩
关系代数运算特点
关系代数操作以一个或多个关系为输入,结果是一个新的关系。
用对关系的运算来表达查询,需要指明所用操作, 具有一定的过程性。
为什么提出关系代数?
关系代数三要素:运算对象、运算结果、运算符
关系代数操作:集合操作和纯关系操作
(1)集合操作
(2)纯关系操作
关系代数满足的属性:并相容性
对于并差交操作来讲要满足并相容性
关系R和关系S的属性数目相同
对于任意的i关系R的第i个属性和关系S的第i个属性的域相同
例如:下面两个关系属性数目、类型(也就是域相同满足并相容性)
并操作
汉语中 或者....或者.... 的意思
差(Difference)操作
是...但不含...
R - S, 它由出现在关系R中但不出现在关系S中的元组构成。
广义笛卡尔积 (Cartesian Product)
行列无关:
新的 度/属性 和 元组 数:
度: 元组:
选择操作(Select):
给一个关系R同时给定一个选择的条件condition(简记为con)选择运算的结果也是关系。
他从关系中选择满足给顶条件con的元组。
数学描述:
例如:
投影
从给定关系中选择某些列作为新的关系
对于关系来讲:是一个集合,集合当中的元素是不能重复的
小结
关系模型之扩展操作(对基本操作进行组合就能得到)
交操作(Intersection)
原因:差操作不是简单的加减法
抽象的
语义的
连接操作(theta-Join)
抽象的
语义的
逻辑过程
但是其实物理上并没有第二步,直接第三步是可以做到的。
需要更名操作,有的把更名操作也作为基本操作之一那么就是六种基本操作。
等值连接(Equi-Join)
抽象等值连接
语义等值连接
逻辑过程
自然连接(Natural-Join)
没有加条件,有默认的条件(这个是最常用的)也就是说关系R和关系S中一定是有属性名相同的属性.
抽象的自然连接
语义的自然连接
操作步骤
多次自然连接
小结
使用连接操作比使用积操作选择投影操作要高效一些。
关系代数操作之组合与应用训练
集合操作思维训练
误区
解决办法(连接自身的等值连接:学号相同)
错误:自然连接的结果仍然是三个属性所以选择操作之后仍然是空
错误:除了只学习课程号为002的没有查出来,其他都查出来。
另一种思路:把学过002号课程的学生找出来从学生表中差去的思路
错误:不满足差运算的并相容性(属性数目是不同的,语法错误)
正确做法(语法语义都是正确的)
关系代数书写的思维
关系代数之复杂扩展操作
关系的除运算(Division)
结果是一样的,因为S#,C#是候选键 。
外连接(Outer-Join)
按上式连接的结果,003号教师的姓名和工资信息丢失了。
因为在Teach表中没有和003号教师相匹配的元组,元组003号教师(又称为失配元组)不能和其他表的元组形成连接元组。
怎样保证使003号教师信息仍旧出现在结果关系中呢?
这就需要外连接
外连接操作
进一步的区分:
操作示例:
其实左外连接就是保持左侧不丢失,没有配对的就和空配对。其他同理
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。