数据库系统原理--关系代数,及关系运算

关系代数六种基本运算
select 选择
Project 投影
Union 并
set diffeence 差(集合差)
Cartesion product 笛卡尔积
Rename 更名
关系的运算是指用户输入一个或者两个关系从而得到一个新的关系。

附加运算
Set intersection 交(两关系含有的相同元组,和并有关系)
Natural join 自然连接
Division 除
Assignment 赋值

第一个----选择运算
有一个关系r(A,B,C,D),我们想选择A和B相同,且D>5的元组t,那么有表达式如下

公式化的定义
首先元组t必须属于操作的关系,并且满足选择条件p,才可以

在选择条件p中可以出现逻辑连接词,与或非等
一个例子
第二个运算—投影
加入有下图关系r关系r
我们只想要关系R(A,B)那么我们就要用投影,将A,C投出,显然和选择相比投影是会减少属性,然后在投出的新属性中,会自动去除重复的元组。
投影示意
看定义
删除重复的行!
一个例子:
实例

第三种运算—并
前面的两种运算都是对一个表运算,得到一个新的表,而并运算会对两个表进行运算得到一个新表
定义
首先不是所有的关系都可以做Union运算的,必须两个关系属性的名字和类型都相同,比如工号这个属性,即使名字相同,但一个属性中工号是int,另一个确是float,这样不可以并运算,即属性的域是相同的

一个例子
第四个运算—差
和并不用的是,差是把R中的元组,在r元组中减去
相当于减去
可以将并运算理解为加,那么查运算就是减
定义
第五个运算—笛卡尔积
把所有关系R与关系r组成的集合罗列出来,看示意图
2×4条元组
以上是广义笛卡尔积,因为关系r和关系s的属性没有交集,加入要是两个关系做笛卡尔积且这两个关系有重名的属性,那么就要对重名属性重命名
一个例子
虽然有两个同名的属性,但是还是看成不同名的属性

第六个运算—更名
允许我们使用其他的名字来指代关系
实例
更名不仅可以对关系更名,也可以对关系中的属性也更名

复合运算
在学习了上面的几种基本运算之后,来学习用多种基本表达组成的复合运算。
以下就是先笛卡尔积然后选择
实例

交运算可以理解为r∩s=r-(r-s),就是两个关系中共有的属性
且两个关系属性必须同属性

自然连接自然连接是在关系R(A,B,C)和S(C,D,E)笛卡尔积的基础上,把两关系中属性(C)的值相同的元组提出来当成新关系属性(C)的元组
看实例
一个实例
除运算,可以理解为笛卡尔积的逆运算,如果笛卡尔积是把两个关系中所有的元组都搭配一遍,那么除运算,不就是,把一个关系中如果蕴含另一个关系所有情况的哪个属性找出来吗。以选课作比较,加入要找出选修了,所有课程的学生的学号,那么我们是不是以学科表来除课程表,以此得到的元组不就是所有课程都选了的学生吗
实例
详细过程
可以看到除会先把被除数的关系,先把属性分组,然后再看除数关系,得到的结果要把重复的去掉,

tips基本上查询中带有”全部“,“所有”,字样的查询会用到除法

赋值运算
赋值运算是将关系代数运算赋值给一个变量,比如用→指向被赋值的变量,但一般箭头向左,且指向关系变量
实例

最后运算得优先级:
总结

  • 0
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值