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

关系代数六种基本运算
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中可以出现逻辑连接词,与或非等
数据库系统原理--关系代数,及关系运算_第1张图片
第二个运算—投影
加入有下图关系r数据库系统原理--关系代数,及关系运算_第2张图片
我们只想要关系R(A,B)那么我们就要用投影,将A,C投出,显然和选择相比投影是会减少属性,然后在投出的新属性中,会自动去除重复的元组。
数据库系统原理--关系代数,及关系运算_第3张图片
看定义
删除重复的行!
一个例子:
数据库系统原理--关系代数,及关系运算_第4张图片

第三种运算—并
前面的两种运算都是对一个表运算,得到一个新的表,而并运算会对两个表进行运算得到一个新表
数据库系统原理--关系代数,及关系运算_第5张图片
首先不是所有的关系都可以做Union运算的,必须两个关系属性的名字和类型都相同,比如工号这个属性,即使名字相同,但一个属性中工号是int,另一个确是float,这样不可以并运算,即属性的域是相同的
数据库系统原理--关系代数,及关系运算_第6张图片
一个例子
第四个运算—差
和并不用的是,差是把R中的元组,在r元组中减去
数据库系统原理--关系代数,及关系运算_第7张图片
可以将并运算理解为加,那么查运算就是减
数据库系统原理--关系代数,及关系运算_第8张图片
第五个运算—笛卡尔积
把所有关系R与关系r组成的集合罗列出来,看示意图
数据库系统原理--关系代数,及关系运算_第9张图片
以上是广义笛卡尔积,因为关系r和关系s的属性没有交集,加入要是两个关系做笛卡尔积且这两个关系有重名的属性,那么就要对重名属性重命名
数据库系统原理--关系代数,及关系运算_第10张图片
虽然有两个同名的属性,但是还是看成不同名的属性

第六个运算—更名
允许我们使用其他的名字来指代关系
数据库系统原理--关系代数,及关系运算_第11张图片
更名不仅可以对关系更名,也可以对关系中的属性也更名

复合运算
在学习了上面的几种基本运算之后,来学习用多种基本表达组成的复合运算。
数据库系统原理--关系代数,及关系运算_第12张图片
数据库系统原理--关系代数,及关系运算_第13张图片

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

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

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

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

最后运算得优先级:
数据库系统原理--关系代数,及关系运算_第17张图片

你可能感兴趣的:(数据库系统原理--关系代数,及关系运算)