【数据库专题】智多星带你五分钟攻略“关系代数”——《狗叫江湖》第二幕续集

article/2025/9/1 14:46:19


“百分百无规则教学时间!🔥🔥🔥”

兄弟萌晚上好!我是无规则教学创始人【东星耀杨】,感谢兄弟萌对我的不离不弃,爱你们熬爱你们!还望兄弟萌给为师一个三连支持,要不然我蒸滴会紫砂的!
在这里插入图片描述

《 刀不锋利马太瘦,你拿什么跟我斗?》

  • :one:作者简介
  • :one:《我要进场了》
    • :two:小粉丝提问
  • :one:关系操作
    • :two:关系模型中常用的关系操作
      • :three:查询操作
    • :two:关系操作的特点
  • :one:关系代数
    • :two:关系代数是什么?
    • :two:集合运算符
      • :three:并
      • :three:交
      • :three:差
      • :three:笛卡尔积
    • :two:专门的关系运算
      • :three:选择
      • :three:投影
      • :three:综合选择和投影运算的例子
      • :three:连接
        • :arrow_forward:自然连接与等值连接之间的联系与区别
        • :arrow_forward:悬浮元组与外连接
      • :three:除
        • :arrow_forward:象集
  • 《兄弟萌我爱你们!》

在这里插入图片描述

1️⃣作者简介

👏作者简介东星耀杨,C站煮播之星,骚话专家,曾奉太上老君之名下凡,为了给迷途中的兄弟萌指点迷津帮助兄弟萌早日踏入如我这般境界!世人见我,皆称之“王霸之气侧漏”的男人,哇靠蒸滴c!c了兄弟萌!
👏往期回顾:【耀杨的罗曼史】小红:耀杨欧巴,能教教我hashmap吗?【雀氏润】
👏耀杨和兄弟萌的约定:等我到一千粉,给兄弟萌发红包!感谢兄弟萌的陪伴和支持!

1️⃣《我要进场了》

兄弟萌兄弟萌~几时不见如隔三秋呀,没有兄弟萌的日子里为师只能靠刷剧度日,要不然都会腰腿酸痛,思念成疾的呀!爱你们熬爱你们!!!😇😇😇
在这里插入图片描述

2️⃣小粉丝提问

最近总是有兄弟私信耀杨,啥时候更新【数据库专题】呀,兄弟萌不是我不想更新,mdC失灵了,为师这脑回路也越发迟钝,一直想等着精神好点再给兄弟萌安排,这不它来了!

今日咱们不多说骚话,就是教学好吧兄弟萌,就这么定了!

在这里插入图片描述

1️⃣关系操作

在讲解关系代数之前,有必要先跟兄弟萌讲讲关系操作。

2️⃣关系模型中常用的关系操作

关系模型中常用的关系操作主要包括查询(query)操作和插入(insert)、删除(delete)、修改(update)操作两大部分。

3️⃣查询操作

- 关系的查询操作表达能力最强,是关系操作中最主要的操作
- 关系操作可以分为选择、投影、除、并、差、交、笛卡尔积等等。
- 查询操作的5种基本操作:选择、投影、并、差、笛卡尔积。

2️⃣关系操作的特点

⭐️关系操作的特点:集合操作方式,即操作的对象和结果均是集合,这种操作方式也成为一次一集合的方式

在这里插入图片描述

1️⃣关系代数

⭐️关系操作简单了解即可,下面为师带着你们攻略数据库原理中的关系代数!!

2️⃣关系代数是什么?

关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。

所谓运算就是将运算符作用在某一个运算对象上得出运算结果,所以在这里运算的三大要素显而易见:运算对象、运算符和运算结果。

么对于关系代数呢?这里为师本来想卖个关子,但是还是决定直接说吧,时间紧迫,今晚为师还想给兄弟萌更新一篇教学呢!

对于关系代数而言,运算对象是关系,运算结果同样为关系,而藏在这里的运算符主要分为两类:

1.集合运算符 并、差、交、笛卡尔积

2.专门的关系运算符 选择、投影、连接、除

接下来为师一一为兄弟萌讲解

2️⃣集合运算符

3️⃣并

公式:R ∪ S = { t | t∈R ∨ t∈S }(t∈S表示t是关系S的一个元组)

注:结果仍然是n目关系,由属于R或者S的元组组成。

3️⃣交

公式:R ∩ S = { t | t∈R ∧ t∈S }

注:结果是关系R和S形同的元组

3️⃣差

公式:R - S = { t | t∈R ∧ ¬t∈S }

注:结果是关系R减去R和S的交集

3️⃣笛卡尔积

公式:R × S = { tr⌒ts| tr∈R ∧ ts∈S }

注:

之间为师跟兄弟萌讲过域的笛卡尔积为基数相乘,集合的笛卡尔积也同理。
两个关系中的元组个数相乘得出结果关系的元组个数。

两个关系的目数之和为结果关系的目数

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2️⃣专门的关系运算

3️⃣选择

公式:σF( R ) = { t | t∈R ∧ F(t) = ‘真’ }

注:选择是单目运算,是在行上进行的运算,根据一定的条件从关系R中选择若干个元组,组成一个新的关系。
单目查询到符合σ条件的元素,结果取元素所对应的元组(行)。

3️⃣投影

公式:∏A( R ) = { t[A]| t∈R }

注:投影同样是单目运算,是在垂直关系即列航进项的运算, 单目查询到符合条件的属性,取出属性所对应的列,去除该列中重复的元组。

3️⃣综合选择和投影运算的例子

在这里插入图片描述

(TNo)(σ(cN=‘C5’)(TC))

代表着讲授C5课程的教师号。

3️⃣连接

等值连接

  • θ连接运算是一个二元运算,其效果是从两个关系R和S的笛卡尔积中选取满足连接条件的元组,而后组成新的关系。
  • 设两个关系R和S,它们的属性列数分别为n和m,其中R中的属性可以进一步分解为属性集Z和X,即R=(Z,X),关系S可以进一步分解为属性集W和Y,即S=(W,Y)。
  • 如果我们认定X和Y是连接属性(需要X和Y的属性列数相等),那么关系R和S在连接属性X和Y上的θ连接,就是在R和S的笛卡尔积中选择那些X属性集上的分量与Y属性集上的分量满足θ比较条件的那些元组。
  • 新关系的列数为(n+m),即两个关系的列数和,记作:

在这里插入图片描述

注意看为师细节:其中θ代表的是一个算术比较运算符,称为θ连接。XθY是连接条件:

θ为"=“时,称为等值连接
θ为”<“时,称为小于连接;
θ为”>"时,称为大于连接;

🐶根据连接定义可以推断出这样一个公式:
R ⋈AθBS=σ(AθB)(R×S)
在这里插入图片描述

  • 还有一种连接方式称为自然连接(是一种特殊的等值连接)
    它是在等值连接的情况下,当连接属性X和Y有着相同的属性列时,去掉连接结果中那些相同的属性列。

🐶总结来说,自然连接是在广义笛卡尔积R×S中选出同名属性上符合相等条件的元组,再进行投影,去掉重复的同名属性,组成新的关系。

语法:R ⋈S = { tr ⌒ ts | tr ∈ R ∧ ts ∈ S ∧ tr[A] = ts[A] }

根据上面图,自然连接就是去除一个CNO属性列。

▶️自然连接与等值连接之间的联系与区别

⊙自然连接要求同名同域的属性组才可连接,而等值连接仅要求域相同;
⊙自然连接是去掉重复列的等值连接;
⊙自然连接一定是等值连接,而等值连接不一定是自然连接;
⊙自然连接后列的数量小于等于等值连接后列的数量。

▶️悬浮元组与外连接

在关系S和C中被由于自然连接被舍弃的元组被称为悬浮元组。
S:
在这里插入图片描述
在这里插入图片描述
C:
在这里插入图片描述

  • 将悬浮元组保存在结果关系中,并且在其他属性上填上空白纸NULL,这就叫做外连接
  • 如果只是保留左边关系S中的悬浮元组叫做左外连接
  • 如果只是保留右边关系C中的悬浮元组叫做右外连接

3️⃣除

公式:R ÷ S = { tr[X] | tr∈R ∧ ∏y(S)⊆YX }

注:除法的运算比较抽象,在这里先简明一下定义:

关系R除以关系S的结果为关系T,则T中包含所有在R但是不在S的属性及其值,且T的元组与S的元组的所有组合都在R中
用象集来定义除法:
给定关系R (X,Y) 和S (Y),其中X,Y 为属性组。则R÷S得到一个新的关系P(X):
如果R中某元组在X上分量值x的象集Yx包含S , 则由x组成的元组就是P的元组。
R÷S = {x | S 真包含于 Yx }
Yx:x在R中的象集

定义总是那么难懂,为师给你简单说明下。
就是把被除的关系R去除与S中属性相等的列,列出剩余属性列的象集,与S在去除属性下的投影相比较,相同的则为除法的结果。

▶️象集

在下图中
a1的象集为{(b1,c2),(b2,c3),(b2, c1)}
a2到a4同理。找对应的B,C属性为象集中的一个元素。
▶️在这里插入图片描述
▶️在这里插入图片描述

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

所以除法的结果为图(c)所示

在这里插入图片描述

《兄弟萌我爱你们!》

兄弟萌今天又是认真教学的一天,收获满满诶嘿,蒸滴c!!!😚

兄弟萌今天新学一招,三寸金莲漂a接菊花斩 ,哇靠爱你们哦爱你们!!!😚

兄弟萌临走之前,给兄弟萌透露一下,为师即将更新【寻找佳慧】专题,可以小小的期待一诶嘿 ~😚

在这里插入图片描述


航 空 母 舰!!!
~溜了溜了……


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

相关文章

互联网人的职场关系攻略

本篇文章原本是给公司校招新人的做的一个内部培训ppt(需要的可以找我)&#xff0c;作为一名技术人员&#xff0c;真是不太擅长处理职场关系&#xff0c;但身在职场&#xff0c;估计都能感到其重要性&#xff0c;要想愉快恰饭&#xff0c;万万不可忽视&#xff0c;为了防止误导新…

vue 生命周期详解 (附代码)

一、 vue的生命周期是什么 vue每个组件都是独立的&#xff0c;都有自己的生命周期&#xff0c;从一个组件创建、数据初始化、挂载、更新、销毁&#xff0c;就是一个组件的生命周期。 一个组件首次加载时&#xff0c;也就只执行 创建、数据初始化到挂载。 生命周期给了用户在…

详解vue生命周期(常问面试题)

面试常问&#xff1a;1、vue生命周期是什么&#xff1f; Vue 实例从创建到销毁的过程为生命周期。从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程&#xff0c;称之为 Vue 的生命周期。 2、vue生命周期的作用是什么&#xff1f; 在控制整个…

Vue学习 — 详解Vue生命周期

目录 一、前言二、生命周期1、beforeCreat / created(1)、beforeCreat&#xff1a;&#xff08;2&#xff09;、created&#xff1a; 2、eforeMount / mounted&#xff08;1&#xff09;、beforeMount&#xff1a;&#xff08;2&#xff09;、mounted&#xff1a; 3、beforeUpd…

Vue生命周期详解学习笔记

生命周期 生命周期又名生命周期回调函数&#xff0c;生命周期函数&#xff0c;生命周期钩子。生命周期是Vue在关键时刻帮我们调用的一些特殊名称的函数。生命周期函数的名字不可更改&#xff0c;但函数的具体内容是程序员根据需求编写的。生命周期中的this指向vm或组件实例对象…

Vue的生命周期详解,一文带你弄懂Vue的生命周期

大家好&#xff0c;我是Ned&#x1f440;&#xff0c;一个刚刚入门前端未满两年的大三小学生&#x1f339; 未来路还长&#x1f389;, 一起努力加油吧❤~ 前言 我记得尤大曾经说过&#xff0c;你看Vue源码干嘛&#xff1f;你使用Vue又不需要它的源码&#xff0c;你只需要会用就…

Vue系列之vue生命周期详解

文章の目录 1、什么是 vue 生命周期2、生命周期钩子函数2.1、beforeCreate&#xff08;创建前&#xff09;2.2、created&#xff08;创建后&#xff09;2.3、beforeMount&#xff08;挂载前&#xff09;2.4、mounted&#xff08;挂载后&#xff09;2.5、beforeUpdate&#xff0…

Vue的生命周期详解(简单易懂)

一、定义 Vue的生命周期就是实例从创建到销毁的一个过程&#xff0c;即从创建、初始化数据、编译模板、挂载Dom->渲染、更新->渲染&#xff0c;卸载等一系列的过程。 写代码时注意&#xff1a; Vue的生命周期钩子函数会自动绑定this上下文到实例中&#xff0c;这意味着…

【Vue】 Vue生命周期详解

每一个vue实例从创建到销毁的过程&#xff0c;就是这个vue实例的生命周期。在这个过程中&#xff0c;它经历了从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、卸载等一系列过程。 通过这张流程图已经可以清晰的看到Vue整个生命周期的过程 beforeCreate( 创建前…

Vue极简教程,生命周期详解

Vue | 渐进式 | JS框架 | 极简教程 生命周期详解

vue实例的生命周期详解

Vue实例的生命周期 简介 此篇文章说的是最简单的单个VUE组件的生命周期。 官网中的长图诠释了Vue实例从创建&#xff0c;运行到销毁的整个过程。从vue实例的创建&#xff0c;运行&#xff0c;销毁期间&#xff0c;总是伴随着各种各样的事件&#xff0c;这些事件统称为生命周期…

【Vue生命周期详解】

细谈Vue声明周期 什么是生命周期&#xff1f;Vue的生命周期beforeCreate( 创建前 )&#xff1a;created ( 创建后 &#xff09;&#xff1a;beforeMount&#xff1a;mounted&#xff1a;beforeUpdate&#xff1a;updated&#xff1a;beforeDestroy&#xff1a;destroyed&#x…

VUE的十一个生命周期详解

生命周期可以分为三个阶段&#xff1a; 挂载阶段 更新阶段 销毁阶段 创建前&#xff1a;beforeCreate() 无法获取data数据 创建后&#xff1a;created() 可以获取data数据和操作methods 但不能使用DOM 挂载前&#xff1a;beforeMount() 挂载后&#xff1a;mounted() …

Vue生命周期和钩子函数详解

Vue生命周期和钩子函数详解 Vue生命周期介绍&#xff1a; 组件每个阶段它的内部构造是不一样的&#xff0c;所以一般特定的钩子做特定的事&#xff0c;比如Ajax获取数据就可以在mounted阶段。从Vue实例被创建开始到该实例最终被销毁的整个过程叫做VUE的生命周期&#xff0c;在…

vue生命周期详解(一)----创建期间的生命周期函数

文章目录 vue生命周期一、beforeCreate1.在beforeCreate函数里面调用data里面的属性2.在beforeCreate钩子函数里面调用methods里面的方法 二、created生命周期钩子函数1.在created钩子函数里面调用methods里面的方法和data里面的属性 三、beforeMount和mountedbeforeMount生命周…

Vue中组件生命周期过程详解

一、什么是生命周期&#xff1f; Vue中的生命周期是指&#xff1a;组件从创建到销毁的一个过程&#xff0c;在这过程中&#xff0c;我们在每个特定阶段会触发一些方法&#xff08;这些方法具备一些功能&#xff09;&#xff0c;我们给这些方法起了名字叫做(生命周期钩子函数/组…

vue生命周期详解和使用场景整理

我们从vue的原理上来理解一下vue的生命周期&#xff0c;以及使用场景&#xff08;使用场景应该试很多新手同学比较懵的地方&#xff09;&#xff0c;建议有条件的同学可以看一下vue源码&#xff0c;更能深入理解。 不看源码的同学也没有关系&#xff0c;我们从业务场景切入&…

vue生命周期钩子函数详解

先放一张官网生命周期图&#xff1a; vue有8种生命周期函数&#xff1a; 钩子函数触发的行为在此阶段可以做的事情beforeCreadtedvue实例的挂载元素$el和数据对象data都为undefined&#xff0c;还未初始化。加loading事件createdvue实例的数据对象data有了&#xff0c;$el还…

Vue的生命周期详解

Vue的生命周期 Vue的生命周期就是vue实例从创建到销毁的全过程&#xff0c;也就是 new Vue() 开始就是vue生命周期的开始。Vue实例有一个完整的生命周期&#xff0c;也就是从开始创建、初始化数据、编译模板、挂载Dom-->渲染、更新-->渲染、卸载 等一系列过程&#xff0…

Vue的生命周期函数详解

Vue有一个完整的生命周期&#xff0c;也就是从开始创建&#xff0c;初始化创建&#xff0c;编译模板&#xff0c;挂载Dom&#xff0c;渲染–>更新–>渲染&#xff0c;销毁等一系列过程&#xff0c;我们称之为Vue的生命周期。通俗的说就是Vue实例从创建到销毁的过程&#…