关系数据库:关系运算

简介: 关系数据库:关系运算

关系运算

关系代数运算符有集合运算符、专门的关系运算符、算术比较符和逻辑运算符,如下:

并(Union)

关系R与S的并由属于R或属于S的元组构成的集合组成,定义为R ∪ S = { t ∣ t ∈ R ∨ t ∈ S } R\cup S=\{t|t\in R \vee t\in S\}R∪S={t∣t∈R∨t∈S},t为元组变量,R与S具有相同的关系模式(结构相同)。

等价SQL:

SELECT A,B,C FROM R
UNION 
SELECT A,B,C FROM S;

差(Difference)

image.png

等价SQL:

SELECT A,B,C FROM R
EXCEPT
SELECT A,B,C FROM S;

交(Intersection)

image.png

等价SQL:

SELECT A,B,C FROM R
INTERSECT
SELECT A,B,C FROM S;

笛卡尔积(Extended Cartesian Product)

两个元数分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是

image.png


等价SQL:

SELECT * FROM R
CROSS JOIN S;


投影(projection)

image.png

等价SQL:

SELECT A,C FROM R;

选择(Selection)

选择运算是从关系的水平方向进行运算,是从关系R中选择满足给定条件的诸元组,形式定义为

image.png 等价SQL:

SELECT A,B,C FROM R WHERE A>B;

除(Division)

除运算是同时从关系的水平方向和垂直方向进行运算。给定关系R(X,Y)和S(Y,Z),X、Y、Z为属性

image.png

bddd69481adab2d104bc365d6569a876.png

image.png

7370214a4e7e1478301f6ab809ed7957.png

等价SQL:

SELECT * FROM R
CROSS JOIN S
WHERE R.A<S.B;

image.png

38caeda5a786344bfaa5f8c1b1249d76.png

等价SQL:

SELECT R.A,R.B,R.C,R.D
FROM R,S 
WHERE R.A=S.A AND R.C=S.C;

要求两个关系中进行比较的分量必须是相同的属性组并且在结果集中将重复属性列去掉。

外连接(outer join)

外连接是连接运算的扩展,可以处理缺失的信息。

  • 左外连接(left outer join)。取出左侧关系中所有与右侧关系中任一元组都不匹配的元组,用空值null填充所有来自右侧关系的属性。

等价SQL:

SELECT R.A,R.B,R.C,S.D
FROM R
LEFT JOIN S 
ON R.B=S.B AND R.C=S.C;
  • 右外连接(right outer join)。取出右侧关系中所有与左侧关系中任一元组都不匹配的元组,用空值null填充所有来自左侧关系的属性。

等价SQL:

SELECT R.A,S.B,S.C,S.D
FROM R
RIGHT JOIN S 
ON R.B=S.B AND R.C=S.C;

完全外连接(full outer join)。完成左外连接和右外连接的操作。既填充左侧关系中所有与右侧关系中任一元组都不匹配的元组,又填充右侧关系中所有与左

  • 侧关系中任一元组都不匹配的元组,将产生的新元组加入自然连接的结果中。

等价SQL:

SELECT R.A,R.B,R.C,S.D
FROM R
LEFT JOIN S 
ON R.B=S.B AND R.C=S.C
UNION 
SELECT R.A,S.B,S.C,S.D
FROM R
RIGHT JOIN S 
ON R.B=S.B AND R.C=S.C;

聚集函数

聚集函数输入一个值的集合,返回单一值作为结果。如集合12,4,6,8,10,15}。将聚集函数sum用于该集合时返回和45;将聚集函数avg用于该集合时返回平均值7.5;将聚集函数count用于该集合时返回集合中元数的个数6;将聚集函数min用于该集合时返回最小值2;将聚集函数max用于该集合时返回最大值15。

元组演算

image.png

image.png

查询优化

查询处理是从数据库中提取数据的一系列活动。

查询处理的代价:总代价=I/O代价+CPU代价+内存代价(多用户环境)。

查询优化:为查询选择最有效的查询计划的过程。

优化的准则:

  • 提早执行选取运算。
  • 合并乘积与其后的选择运算为连接运算。
  • 将投影运算与其后的其他运算同时进行,以避免重复扫描关系。
  • 将投影运算和其前后的二木运算结合起来,使得没有必要为去掉某些字段再扫描一遍关系。
  • 在执行连接前对关系做适当的预处理,就能快速地找到要连接的元组。方法有两种:索引连接法、排序合并连接法。
  • 存储公共子表达式。

相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
相关文章
|
存储 安全 数据库
关系数据库与关系运算
一、关系数据库与关系运算 关系数据库是一种基于关系模型的数据库管理系统,它使用关系代数和关系演算来进行数据操作和查询。 关系代数是一种基于集合论的形式化查询语言,它定义了一组操作符,如选择、投影、连接、并、差等,用于对关系进行操作和组合。关系代数的操作符可以用来描述数据库中的查询操作,例如从一个或多个关系中选择满足特定条件的元组,或者对关系进行连接和投影等。 关系演算是一种基于逻辑的形式化查询语言,它使用谓词逻辑来描述查询条件和结果。关系演算分为两种形式:元组关系演算和域关系演算。元组关系演算是基于元组的操作,它使用谓词逻辑表达式来描述查询条件,并返回满足条件的元组。域关系演算是基于属性的操作
290 0
|
6月前
|
数据库
数据库五种基本运算
【5月更文挑战第15天】数据库的关系代数包括并、差、投影、笛卡尔积和选择等基本运算,以及交、连接、除、广义投影和外连接等扩展运算。在这些操作中,笛卡尔积通常最消耗资源,因为它会大幅增加元组数量和计算量。
335 4
数据库五种基本运算
|
5月前
|
人工智能 数据库
数据库关系运算理论:专门的关系运算概念解析
数据库关系运算理论:专门的关系运算概念解析
126 0
|
5月前
|
数据库
数据库关系运算理论:传统的集合运算概念解析
数据库关系运算理论:传统的集合运算概念解析
67 0
|
5月前
|
SQL 数据库 数据库管理
数据库关系运算理论:关系数据操作与关系完整性概念解析
数据库关系运算理论:关系数据操作与关系完整性概念解析
88 0
|
数据库
​数据库|传统的集合运算
​数据库|传统的集合运算
192 0
专门关系运算——关系数据库基础
专门关系运算——关系数据库基础
|
SQL 消息中间件 固态存储
国产CPU执行SPL实现数据库运算的性能实用性测试
任务背景 国际大环境就不用多说了。 对于数据库类的关键业务,全国产技术(国产CPU+国产数据库)和国外主流技术在性能上相比还有不小的差距,经常需要借助分布式技术使用数倍的硬件才能获得类似的效果。
|
数据库
数据库中关系代数中的关系运算
除法运算的定义: 这个概念的描述的非常抽象,刚开始学习的同学完全不知所云。这里通过一个实例来说明除法运算的求解过程: 设有关系R、S 如图所示,求R÷S 的结果: 求解步骤过程: 第一步:找出关系R和关系S中相同的属性,即Y属性。
1079 0