数据库五种基本运算

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 【5月更文挑战第15天】数据库的关系代数包括并、差、投影、笛卡尔积和选择等基本运算,以及交、连接、除、广义投影和外连接等扩展运算。在这些操作中,笛卡尔积通常最消耗资源,因为它会大幅增加元组数量和计算量。

1 数据库五种运算

五种基本的关系代数运算,

并(符号为V)、差(符号为^)、投影()、笛卡尔积、选择,

补充关系代数运算有,交、连接、除、广义投影、外连接。

笛卡尔积 ,从数学角度理解,就是将集合A和集合B中所有有序对元素集合

选择运算是筛选满足条件的元组,

投影则选取关系的列子集。

连接运算如等值连接和自然连接,用于合并满足特定条件的元组。

除法运算得到的是在第一个关系中但不在第二个关系的属性和值。

投影和除法的示例解释了如何应用这些概念来处理数据。

CogitoErgoSumC.jpg

2 数据库中选择,投影,连接,除法运算

选择运算: 查询

    是数据库选择关系中 行的子集,即选择满足条件的元组

投影:是选取关系中列的子集,设模式R的关系r,X是R上属性的子集 x就是列,r到X上的投影r' 表示

    r'(X) = ...

投影操作是从列的角度做 行的运算。

投影的结果不是原有的关系,是X中几列的属性。

由于投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列之后,就可能出现重复行,投影结果不应该包括重复行。

连接 Join 自然连接,等值连接

定义:连接也称之为 0连接,它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
  • 等值连接

           θ为 = 符号的连接运算称为等值连接。
           它是从关系R与S的广义笛卡尔积中选取A , B 属性值相等的那些元组。
    
  • 自然连接

           自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是同名属性组,并且在结果中把重复的属性列去掉。
    
           等值连接和自然连接的区别是,自然连接是去除了重复的属性列的。
    
  • 除法运算 division

           设关系R除以关系S的结果为关系T,则T包含全部在R但不在S的属性和值,且T的元组与S的元组的全部组合都在R中。
    

除法的结果可以用计算象集的方法解决,以一道题为例说明如何求除法。

2.1 除法步骤

1 因为R÷S所得到的属性值 是包含于R,但是S不包含的属性, 所以R➗S得到的属性列有(A,B),S在(C,D)属性上的投影为{(c1,d1),(c2,d2)}

2 关系R中,AB属性可以取值为={(a1,b1),(a2,b2),(a3,b3)}

3 求象集

    (a1,b1)={(c1,d1),(c2,d2),(c3,d3)}
    (a2,b2)={(c2,d2)}
    (a3,b3)={(c1,d1),(c2,d2)}

4 : 从第三步中可以发现,有象集(a1,b1)和(a3,b3)包含了S在(C,D)属性上的投影,所以R÷S={(a1,b1),(a3,b3)}

3 示例: 投影和除的例子

投影运算的含义简单点就是:从表中选择需要的属性列。

列是属性,行是元组..

而且作投影之后可能会出现重复项,比如:

 A B C  
a1 b1 c1  
a1 b2 c2  
a2 b2 c3  

作A的投影就是a1, a2; 减少了一行
设R表为:

        R:
    A  B   C
    a1   b1   c2
    a2   b3   c7
    a3   b4   c6
    a1   b2   c3
    a4   b6   c6
    a2   b2   c3
    a1   b2   c1

设S表为:

        S
    B    C     D
    b1   c2    d1
    b2   c1    d1
    b2   c3    d2

那么 R ➗ S

A
a1

(1) 找S与R的共同属性,其元组看做整体 k
(2)选择R中包含k的 非S与R相同属性的 属性 即为R÷S

4 投影的解答过程如下:

在关系R中,A可以取四个值{a1,a2,a3,a4},其中:

a1的象集为:{(b1,c2),(b2,c3),(b2,c1)}就是a1 对应bc属性上的值
a2的象集为:{(b3,c7),(b2,c3)}
a3的象集为:{(b4,c6)}
a4的象集为:{(b6,c6)}

S在(B,C)上的投影为{(b1,c2),(b2,c3),(b2,c1)}。

只取BC两列显然只有a1的象集(B,C)a1包含S在(B,C)属性组上的投影,全部包含,所以R÷S={a1}。

3 小结

总结:

    并:属性不变,元组可能增加(集合相等时不增加) 
    交:属性不变,元组可能减少(集合相等时不减少) 
    投影:属性可能减少(全投影时不减少),元组可能减少(投影后无重复项时不减少) 
    笛卡尔积:属性增加,元组可能增加(只有1个元组时不增加)

数据库 笛卡尔积,选择,投影,除操作中,应该是笛卡尔积最耗费资源和时间,因为属性增加了,计算量也随之而增加。

目录
相关文章
|
8月前
|
存储 安全 数据库
关系数据库与关系运算
一、关系数据库与关系运算 关系数据库是一种基于关系模型的数据库管理系统,它使用关系代数和关系演算来进行数据操作和查询。 关系代数是一种基于集合论的形式化查询语言,它定义了一组操作符,如选择、投影、连接、并、差等,用于对关系进行操作和组合。关系代数的操作符可以用来描述数据库中的查询操作,例如从一个或多个关系中选择满足特定条件的元组,或者对关系进行连接和投影等。 关系演算是一种基于逻辑的形式化查询语言,它使用谓词逻辑来描述查询条件和结果。关系演算分为两种形式:元组关系演算和域关系演算。元组关系演算是基于元组的操作,它使用谓词逻辑表达式来描述查询条件,并返回满足条件的元组。域关系演算是基于属性的操作
242 0
|
11天前
|
SQL 存储 数据库
关系数据库:关系运算
关系数据库:关系运算
14 2
关系数据库:关系运算
|
11天前
|
人工智能 数据库
数据库关系运算理论:专门的关系运算概念解析
数据库关系运算理论:专门的关系运算概念解析
13 0
|
11天前
|
数据库
数据库关系运算理论:传统的集合运算概念解析
数据库关系运算理论:传统的集合运算概念解析
18 0
|
11天前
|
SQL 数据库 数据库管理
数据库关系运算理论:关系数据操作与关系完整性概念解析
数据库关系运算理论:关系数据操作与关系完整性概念解析
17 0
|
12月前
|
数据库
​数据库|传统的集合运算
​数据库|传统的集合运算
139 0
|
SQL 消息中间件 固态存储
国产CPU执行SPL实现数据库运算的性能实用性测试
任务背景 国际大环境就不用多说了。 对于数据库类的关键业务,全国产技术(国产CPU+国产数据库)和国外主流技术在性能上相比还有不小的差距,经常需要借助分布式技术使用数倍的硬件才能获得类似的效果。
|
数据库
数据库中关系代数中的关系运算
除法运算的定义: 这个概念的描述的非常抽象,刚开始学习的同学完全不知所云。这里通过一个实例来说明除法运算的求解过程: 设有关系R、S 如图所示,求R÷S 的结果: 求解步骤过程: 第一步:找出关系R和关系S中相同的属性,即Y属性。
1034 0
|
3天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!