数据库(笔记)——关系代数以及相关运算

article/2025/10/7 2:09:17

关系代数

  • 关系代数及其运算符
    • 集合运算符
    • 关系运算符
  • 总结

关系代数及其运算符

关系代数是一种抽象的查询语言,通过关系的运算来表达查询
关系代数常使用的运算符由如下几类

  • 集合运算符:∪(并)、∩(交)、-(差)、×(笛卡尔积)
  • 专门的关系运算符:σ(选取)、∏(投影)、∞(连接)、*(自然连接)、÷(除)
  • 算术比较符:>、≥、<、≤、=、≠
  • 逻辑运算符:∧(与)、∨(或)、¬(非)

其中算数比较符的使用就不多说,组要对集合运算符和关系运算符进行学习
需要注意的是,∩与∧两中运算符,前者是针对集合的,后者是针对元素的

集合运算符

前提
关系R、S需要满足相容

  1. 具有相同的度n
  2. 相同的属性需要来自同一个域(可以说是R、S具有相同的属性集U)

给出如下两个表

R

ABC
a1b1c1
a1b1c2
a2b2c1

S

ABC
a1b1c1
a2b2c1
a2b3c2
  1. 交(∩)
    R∩S = {t | t∈R ∧ t∈S},(t是一个元组)那么得到的结果如下
ABC
a1b1c1
a2b2c1
  1. 并(∪)
    R∪S = {t | t∈R ∨ t∈S},结果如下
ABC
a1b1c1
a2b2c1
a1b1c2
a2b3c2
  1. 差(-)
    R-S = {t | t∈R ∧ ¬t∈S},结果如下
ABC
a1b1c2

R-S就是,在R中取出与S相同的元组

  1. 广义笛卡尔积(×)
    R×S = {tr ⌒ts| tr∈R ∧ ts∈S},结果如下
ArBrCrAsBsCs
a1b1c1a1b1c1
a1b1c1a2b2c1
a1b1c1a2b3c2
a1b1c2a1b1c1
a1b1c2a2b2c1
a1b1c2a2b3c2
a2b2c1a1b1c1
a2b2c1a2b2c1
a2b2c1a2b3c2

为什么说是广义笛卡尔积呢?
应为在前面的笛卡尔积中,是只有单一数据的值域之间进行的计算,而这里是通过连接符⌒,来得到两个关系元组的组合
由此能够发现,对于广义笛卡尔积,不需要两个关系满足相容

关系运算符

在此之前需要先了解几个东西

  1. 关系模式为R(A1,A2,A3,…,An),它的一个关系为r,t是r的一个元组,t∈R,t[Ai]表示t中的一个分量
  2. A={A1,A2,…,Ak}, ~ A={Ak+1,Ak+2,…,An},A(还有~ A)称为属性列或域列,t[A]={t[A1],t[A2],…,t[Ak]} 表示元组t在A上的分量集合(A+~A=R)
  3. R、S分别为n、m目关系,tr∈R,ts∈S,tr⌒ts 称为元组的连接,连接后的得到的是m + n列的元组
  4. 给定关系R(X,Z),X和Z为两个属性组(X、Z可能代表多个属性,也就是将U分为X、Z两部分),当t[X]=x时,x在R中的象集为Zx={t[Z] | t∈R,t[X]=x},它表示R中的属性组X上,值为x的元组集合在Z上的分量集合,这个集合称为象集(就是在t中t[X]=x部分的t[Z]的集合称为x在R中的象集)

上面的前三个都很好理解,最后一个象集看着比较绕口
用人话来说就是将关系R的属性集U分为两个部分X和Z,x与z是X和Z的某一个值
因此有:t = t[X] + t[Z]
在R中R的元组中找到符合t[X] = x的元组t(也许会找到多个,也许没有)
则t[Z] = t - t[X]就是x在R中的象集
例子,用前面的R表
X代表A,Z代表B和C,那么x=a1时,象集为
{(b1,c1),(b1,c2)}

前面的几样弄清楚后,关系运算符理解起来就很简单了

  1. 选取(σ)
    σF ( R ) = {t | t ∈ R ∧ F(t) = ‘真’}

σ是运算符,F是规定的选取条件,F(t) = '真’表示元组t满足条件
条件是根据需要自定义的
所以,选取的含义就是:选取满足条件的元组
比如:σA=a1 ( R ),表示在R中寻找A=a1的元组,结合之前的R的表,答案为前两行

  1. 投影(∏)
    A( R ) = {t[A] | t ∈ R}

∏是运算符,A是一个属性列
含义是:列出R中属性列A的分量集合(得到的数据是不重复的,重复部分会删除的)
例子:∏A( R ) = {a1, a2}

  1. 连接(⌒)
    连接运算

∞与⌒都是连接运算符,只不过一个连接关系,一个连接元组
θ是比较运算符,可以是大于,小于等
X是R的属性列,Y是S的属性列,X、Y需要来自同一个域
含义:将R与S中符合条件的元组连接起来
还可写作σXθY( R×S )

  • 等值连接:当θ为=时,得到的就是等值连接
  • 自然连接:R*S = {tr⌒ts | tr∈R∧ts∈S∧tr[Y] = ts[Y]}
    当R与S中属性列X和Y相同的时候(属性名需要相同,且来自同一个域),将等值连接后重复部分去掉得到的就是自然连接
    下面两个表分别是等值和自然连接(条件是R.B = S.B,也假设B是相同名的)
ArBCrAsBCs
a1b1c1a1b1c1
a1b1c2a1b1c1
a2b2c1a2b2c1
ArBCrAsCs
a1b1c1a1c1
a1b1c2a1c1
a2b2c1a2c1
  1. 除(÷)
    给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组,R中的Y与S中的Y可以有不同的属性名,但必须来自相同的域
    P(X)=R÷S,为R与S的除运算(得到的是X的属性列上的投影)
    其中R÷S = {tr[X] | tr∈R∧∏Y(S)∈Yx}

Yx是x在R中的象集
这个是这样的,假设t[X]的取值范围为{x1,x2,…,xn}
则当t[X]=x1时,计算此时的X在R中的象集(得到关于t[Y]的集合),判断S中,属性列Y的分量集合是否是该象集的子集,若是,这个t[X]就进入除法计算结果中,以此类推,计算t[X]=x2,····类推得到最后结果。

下面给个课本上的例子
R

ABCD
a1b2c3d5
a1b2c4d6
a2b4c1d3
a3b5c2d8

S

CDE
c3d5f3
c4d6f4

R(X,Y),S(Y,Z)
X代表A、B,Y代表C、D,Z代表E
tY[S] = {(c3,b5),(c4,b6)}
步骤如下

  • t[X] = (a1,b1)时,Yx = {(c3,b5),(c4,b6)}
    tY[S]∈Yx成立,(a1,b1)进入运算结果
  • t[X] = (a2,b4)时,Yx = {(c1,d3)}
    tY[S]∈Yx不成立
  • t[X] = (a3,b5)时,Yx = {(c2,d8)}
    tY[S]∈Yx不成立

所以最后的结果为

AB
a1b2

总结

元组、分量需要分清楚
集合运算和关系运算的最主要区别是关系是否需要相容


http://chatgpt.dhexx.cn/article/mDg3eG4b.shtml

相关文章

数据库关系代数详解

文章目录 数据库关系代数1. 传统的关系运算2. 专门的关系运算2.1 关系运算中的基础概念2.2 元组的连接2.3 象集(除法运算重要工具) 3 数学上的运算3.1 并运算3.2 差运算3.3 交运算3.4 笛卡尔积(万能运算) 4. 关系运算4.1 表格简介4.2 选择(Se…

数据库专门的关系运算

本文章用表 选择运算(从行的角度运算) 选择又称为限制,选择运算符的含义: 在关系R中选择满足给定条件的诸元组 投影(从列的角度运算) 投影运算符的含义:从表中选出若干属性列组成新的关系 注…

数据库关系代数运算之连接

联接有三种:θ联接和自然联接(这里是算术比较符),外联接。 (1) θ联接 (从R和S的笛卡儿乘积中选取满足条件“iθj”的元组 •(2)自然联接(naturaljoin) 两个…

数据库关系代数中除运算讲解和SQL语句的实现

【数据库原理】关系代数篇——除法讲解 陈宇超 编辑总结: 除法运算的一般形式示意图 如何计算RS呢,首先我们引进”象集”的概念,具体意义看下面的陈述即可理解 关系R和关系S拥有共同的属性B、C , RS得到的属性值就是关系R包含而关系S不包含的属性&am…

关系代数基本运算 数据库

操作目录 关系代数的八种基本运算并交差笛卡尔积选择投影连接除总结 关系代数的八种基本运算 并 并,就是将两个或多个表并连起来,需要注意的就是在并的过程中,我们并不是直接一笼统地并起来,而且还要对相同的元祖进行合并&#x…

数据库系统概论----关系运算之除运算

这一周都在复习《数据库系统概论》这门课,看到关系运算的这一节时,对于除运算不是很理解。 通过百度,我觉得也没有得到比较容易理解的讲解。 这里呢,我就分享一下我的理解吧,如有差错的地方,还希望看到这…

数据库-----关系运算

关系数据库概述 相关术语 ◎在现实世界中,描述一个事物常常要抽取其若干特征来表示,这些特征称为属性,如用学号、性别、班级等来描述学生。每个属性的取值范围对应一个值的集合,称为属性的域,如性别的域是{男&#x…

数据库基础--关系代数中的除法运算

除法运算的定义: 这个概念的描述的非常抽象,刚开始学习的同学完全不知所云。这里通过一个实例来说明除法运算的求解过程 设有关系R、S 如图所示,求RS 的结果 求解步骤过程: 第一步:找出关系R和关系S中相同的属…

数据库的运算

数据库的运算可分为集合运算和关系运算。 一、集合运算 • 从关系的水平方向迚行; • 包括,幵、交、差、笛卡尔积运算。 • 幵运算(R U S):可实现数据的揑入。 • 差运算(R–S):主…

关系数据库:专门关系运算

专门关系运算有:选择,投影,连接,除运算。 1.选择从关系中找出满足给定条件的所有元组称为选择,其中条件是用逻辑表达式给出的,逻辑表达式为真时元组被选取。 选择运算记为δF(R)&am…

详解【数据库】关系代数基本运算

文章目录 五中基本的关系代数操作并(Union)差(Difference)广义笛卡尔积(Extended Cartesian Product)投影(Projection)选择(Selection) 连接等值连接自然连接…

数据库关系运算——除运算

书上给“除运算”的定义是: 设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。 我对此不是很理解。 直到看到这样的解读,方才恍然大悟:

【数据库】关系代数基本运算

前言 关系代数是以关系为运算对象的一组高级运算的集合。由于关系定义为属性个数相同的元组的集合,因此集合代数的操作就可以引入到关系代数中。关系代数中的操作可以分为两类:传统的关系操作,并、差、交、笛卡尔积(乘&#xff09…

数据库原理之关系数据库关系运算

关系数据库关系运算 选择投影链接除运算 选择运算 选择运算是从关系R中选取使逻辑表达式F为 真的元组,是从行的角度进行的运算 投影运算 投影操作主要是从列的角度进行运算,但投影之后不仅取消可原关系中的某些列,而且还可能取消某些元组…

数据库之关系数据库的关系运算

关系运算的机理有什么用 我们学习关系运算的机理,对我们理解数据库查询操作非常重要 所以我们进行关系操作时很大程度上需要明白关系操作以及关系之间的逻辑 在我们进行数据库查询操作时,如何规范的使用数据库语言,如何进行选择时能够消除我…

数据库中的关系运算

1、和(Union)运算、针对行 针对两张具有相同属 性的表,将两者表合并起来,在合并过程中遇到重复的行保留一项就行了。 2、差(difference)运算、针对行 针对两张具有相同属 性的表,第一张表减去第…

数据库关系运算

专升本 数据库的关系运算 本文章是讨论数据库中的8种关系运算,分为传统的集合运算和专门的关系运算 传统集合运算 1:并运算U:将表拼接起来,且去掉重复记录(同结构) 2:交运算∩:取…

kafka消费模式

简介:kafka是一种消息队列,主要是观察者模式(Obsever)一个分布式的发布、订阅的消息系统,支持海量数据的数据传递(高吞吐)。Kafka将消息持久化到磁盘中,并对消息创建了备份保证了数据…

kafka 命令行操作大全

kafka 命令行操作大全 一、集群相关常用命令二、topic相关常用命令2.1 脚本&参数简介2.2 举例 三、生产者命令行常用操作3.1 脚本&参数简介3.2 举例发送消息 四、生产者命令行常用操作4.1 脚本&参数简介4.2 举例消费消息 这里主要讲命令行操作,如何安装…

Kafka版本讲解

1 文章背景 在维护一些老项目时候,总会听到 kafka 0.8版本,0.10版本,会感觉到很奇怪,为什么版本号 不是从1.0.0开始,本篇文档重点阐述一下kafka非主流的版本号 2 参考文章 Apache Kafka 3 个人理解 kafka对外发布第一个版本的时候版本号就不…