数据库的关系运算集合运算

news2025/7/19 14:38:45

目录

传统的关系运算:

0.相容性:

1.并:

2.差:

3.交:

4.笛卡尔积:

图例:

专门的关系运算:

选择:

 投影:

连接:

自然连接: 

原理分析:

除:

原理分析:

例题:

题解:

1)

答案:

2)

答案:

3)

答案:

4)

 答案:

5)

答案:

6)

答案:

7)

答案:

8)

答案:

9)

答案:



 

传统的关系运算:

0.相容性:

  • 设给定两个关系 R,S,若满足:
  • 具有相同的列数(或称度数)n;
  • R中第i个属性和S中第i个属性必须来自同一个域(列同质)。
  • 则说关系R,S是相容的。
  • 除笛卡儿积运算外,其他的集合运算要求参加运算的关系必须满足上述的相容性定义。

1.并:

关系 R 和关系 S 的并运算结果由属于 R 或属于 S 的元组组成即 R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n元关系。 

R∪S={t|t∈R∨t∈S}

对于关系数据库,记录的插入和添加可以通过并运算实现。

2.差:

 关系R 与关系S的差运算结果由属于R 而不属于S的所有元组组成即 R 中删去与 S 中相同的元组,组成一个新关系,其结果仍为 n 元关系。


R-S={t|t∈R∧₇t∈S}

可实现关系数据库记录的删除 

3.交:

关系 R 与关系 S的交运算结果由属于 R 又属于S的元组即R与S中相同的关系,其结果仍为 n 元关系。

R ∩ S={t|t∈R∧t∈S}

两个关系的并运算也可以使用差运算进行表示:

R ∩ S = R - (R - S) 

4.笛卡尔积:

两个分别为 n 元和 m 元的关系 R 和S 的广笛卡儿积是一个(nm)列的元组的集合,元组的前n列是关系R的一个元组,后 m 列是关系S的一个元组。若R有个元组,S有k,个元组,则关系R和关系S的广义笛卡儿积有 k;xk个元组。

 

图例:

专门的关系运算:

专门的关系运算:选择,投影,连接,除。

 

选择:

 

  • 选择是对行的选中,选中满足条件的哪一行,是一种行的操作

 投影:

  • 投影是对选中列的选取,是一种列的操作 

连接:

  • 连接分为自然连接和等值连接。
  •  自然连接一定是等值连接,但等值连接不一定是自然连接
  • 等值连接要求相等的分量,不一定是公共属性,而自然连接要求相等的分量必须是公共属性.
  • 等值连接不把重复的属性除去:而自然连接要把重复的属性除去

自然连接: 

 

原理分析:

  1. 使用自然连接的前提条件是两个关系中必定有相同的部分,也就是某列中的某个属性相同,如图所示,关系R中B列的属性值b和a 在关系R中的B列中存在。
  2. 然后借助关系相同的属性值作为桥梁链接点,进行连接组合。
  3. 自然连接是对列属性的选取,之后再对列中被选中的属性值所在的行进行连接操作。 

除:

 

  • 在除中,我们默认被除数是  被   除数包含的,或者说,被除数的属性值和表头,要在除数中存在。

原理分析:

  1. 如果R÷S ,那么我们默认S的内容是在R中存在的
  2. 我们在关系R中删去含有关系S的表头,以及那一列
  3. 在关系R的每一个元组(行)中,含有关系S 元组 的  元组取下,进行对比。
  4. 对比这些取下的 元组 是否 完全 包含 过  关系S 的元组 ,如果有则就是R÷S的结果。  
  5. 除是对列的删除和行的选取操作!记住有先后顺序,先删除在选取。 

例题:

题解:

1)

  • 思路:目标是通过程军老师  最终结果是课程号和课程名,需要寻找老师和课程之间的关系。
  • 解答:因为老师名字和课程号、课程名再同一个表格中,所以我们先使用选择,将  程军老师  所在的哪一行进行选取,然后再使用投影操作,将程军老师 教授的课程号和课程名进行投影选取

答案:

 

2)

 

  • 思路:选择条件是年龄大于21的 男的  结果是学生学号和姓名,需要再学生关系中查找和条件相关的。
  • 解答:因为是学生关系内部的筛选,所以使用选择,将符合条件的筛选出,又因为结果要是学号和姓名。所以使用投影,将对应的学号和姓名选取。

 

答案:

 

3)

题目大意:检索 选择了 程军 老师课程的 学生姓名

  • 思路:条件是 程军老师  最终结果是 学生姓名,需要找到老师和学生之间的关系,而在三个关系表中,我们可以通过选取老师,得出老师教授课程的课程号
  • 同时投影出SC (学生和课程关系,下文都称SC) 中的学号和课程号,并且除去我们得出的 程军老师教授课程的课程号(结果是学生姓名,和课程号无关,所以使用除法除掉删去)
  • 之后,我们便得出了,上了程军老师课程的学生学号,再使用连接,连接学生关系 S(如果使用除法可能会出现一个学生姓名要包含多个学号才能被筛选出的情况) ,进行筛选,筛选出符合条件的行,然后投影出学号

答案:

 

4)

 

  • 思路:条件是李强同学,最后结果是课程号,所以需要寻找李强和课程之间的关系,再图中,可以使用SC关系中的 学生学号和课程号来进行相关的操作,其次这里的不学某个课程,其实是传统运算符中的不属于,所以可能需要使用传统运算符
  • 题解:因为选择的条件是李强同学,所以使用选择 选取李强同学所在的元组,其次因为SC中有着学生学号和课程号的关系,所以使用连接,选取出李强同学学习的 课程 的课程号 再SC中所在的哪一行 ,然后投影出来。
  • 因为最终结果是要求去除李强同学学习的课程号,所以我们使用 差 将李强同学的课程号再课程号中删除。

 

 答案:

5)

 

  • 思路:条件是全部的学生,最终结果是课程号和课程名,所以找学生和课程号课程名之间的关系,再图中的SC关系,可以通过学生学号进行操作
  • 题解:因为我们寻找的是学生都学习的课程,再SC中,学生可以用学号表示,课程可以用课程号表示,所以我们先投影SC关系中的学号和课程号,同时投影学生关系S中的学生学号
  • 在使用除,将SC投影出的关系除去S投影的关系,利用学生号和除的特点,只有都包含过全部学生学号的课程号才能留下
  • 最后使用留下的课程号对课程关系表C进行连接,利用连接的特点,将课程号作为链接点,筛选出该课程号再课程关系C中所在的元组,然后投影该元组的课程号和课程名

 

答案:

 

6)

 

题目大意:检索 上了程军老师所有课程的  学生 的学号  

  • 思路:条件的程军老师,最终结果是学生学号,所以需要寻找的是程军老师和学生学号之间的关系 
  • 题解:使用选择 进行条件选取,选取程军老师 之后通过投影将程军老师的课程号投影出来,之后使用SC表利用除的特点,将包含了所有筛选出来的课程号  的  元组挑出,并投影出学号。

答案:

 

7)

  • 思路:条件是 全部课程 ,最终结果是学生姓名,寻找课程和学生姓名之间的关系,学生姓名可以用学号作为媒介,全部课程可以用课程号进行连接,通过SC关系的课程号。
  • 解题思路:取出关系C中的所有课程号,在使用SC表投影课程号和学号,使用除,将SC投影的课程号和学号除去C投影出来的课程号,利用除的特点,将包含了 所有课程的学号筛选出,然后利用连接的特点,找到共同点,连接S关系,最后投影名字

答案:

 

8)

 

题目大意: 找跟2号学生选课一样的人的学号 

  • 思路:条件2号学生选的课程,最终结果是学号,可以通过二号学生的学号再SC关系中找到对应的课程号,再通过这个课程号进行筛选,当然筛选包含了学号2学生的学号。

题解:

  1. 选择2号学生的学号进行学号的投影,然后使用连接作为共同点再SC中进行筛选,找出课程号,再使用SC关系除去选出来的课程号,以此找出所有包含了这些课程号的学生号,然后再投影学生号。
  2. 或者再SC中投选择了2号学生学号后,对学号对应的课程号进行投影得出2号学生学的课程号,之间将SC投影出学生号和课程号,然后除去之前选出来的课程号,得出最后的结果

答案:

 

9)

 

  • 思路:条件是课程名字是C语言,最终目标是学生学号和姓名,可以使用选择和投影将C语言对应的课程号弄出,然后再SC表中进行 连接,找到共同点进行筛选,然后再投影学号,再连接找到S表中的对应部分,最后投影
  • 题解:选择C语言课程表所在的哪一行选出,并投影他的课程号,再用课程号对SC表进行连接,找到共同点,并投影出对应的学号,然后在使用学号连接到S关系,找到共同点投影学号和学生姓名

答案:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1157754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nodejs国内镜像及切换版本工具nvm

淘宝 NPM 镜像站(http://npm.taobao.org)已更换域名,新域名: Web 站点:https://npmmirror.com Registry Endpoint:https://registry.npmmirror.com 详见: 【望周知】淘宝 NPM 镜像换域名了&…

公司老项目springmvc jsp 自定义多数据源 转到springboot 整理

真实完整步骤,踩坑整理 有同样的坑,欢迎补充整理 网上的案例老是少了很多配置,本案例涉及到 spring-mvc,自定义多数据源,统一前缀,事务,mybatis,jsp访问异常,静态文件。…

高等数学啃书汇总重难点(九)多元函数微分法及其应用

下册最重要也是个人认为偏恶心的一节(主要东西是真不少....)重点在于会计算偏导、能理解全微分及隐函数求导3个核心内容,至于后面的关于几何层面的应用,建议掌握计算方法即可,学有余力再死磕推导过程等内容~ 1.平面点集…

Vue ElementUI el-tooltip 全局样式修改

el-tooltip 要点 此处是全局配置;如果想设置指定的 tooltip 可设置属性 popper-class,为 tooltip 的 popper 添加类名;代码 6 - 8 行,隐藏小三角; .el-tooltip__popper {border-radius: 4px !important;color: #9E9…

基于黑猩猩算法的无人机航迹规划-附代码

基于黑猩猩算法的无人机航迹规划 文章目录 基于黑猩猩算法的无人机航迹规划1.黑猩猩搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用黑猩猩算法来优化无人机航迹规划。 1.黑猩猩…

社交善行:TikTok如何引领慈善浪潮

在当今数字时代,社交媒体平台已成为人们互动、分享和传播信息的主要渠道。然而,这些平台不仅仅是用来社交和娱乐的工具,它们还可以成为慈善事业的有力支持者。 其中,TikTok以其独特的社交性质和广泛的用户群体,成为引…

东初版 java代码混淆 java加密class Java混淆实际方案

作为资深的开发专家,我很高兴与您分享有关Java混淆的实际方案和案例。Java混淆是一种重要的安全措施,用于保护您的代码免受恶意分析和反编译的威胁。在本文中,我将介绍Java混淆的基本原理、常用工具,以及一个简单的案例来演示如何…

Java如何使用KEPserver 实现S71500 OPC通信

一.PLC和OPC 使用的PLC:西门子PLC S7-1500 使用的OPC server软件: KEPServer V6 二.连接测试 OPC是工业控制和生产自动化领域中使用的硬件和软件的接口标准,以便有效地在应用和过程控制设备之间读写数据。O代表OLE(对象链接和嵌入)&am…

编译时库的顺序影响编译的结果:动态库libxxxx.so:undefined reference to `Json::Value::operator[](c

文章目录 问题产生分析解决 问题产生 问题的起因是,我在使用自己打包的动态库的时候,编译时提示动态库里指向的另一个库找不到… 分析 当编译器进行链接时,它按照从左到右的顺序解析源文件和库文件。如果在链接过程中遇到未解析的符号&…

2023年【R1快开门式压力容器操作】报名考试及R1快开门式压力容器操作实操考试视频

题库来源:安全生产模拟考试一点通公众号小程序 R1快开门式压力容器操作报名考试是安全生产模拟考试一点通总题库中生成的一套R1快开门式压力容器操作实操考试视频,安全生产模拟考试一点通上R1快开门式压力容器操作作业手机同步练习。2023年【R1快开门式…

2.4G合封芯片 XL2422,集成M0核MCU,高性能 低功耗

XL2422芯片是一款高性能低功耗的SOC集成无线收发芯片,集成M0核MCU,工作在2.400~2.483GHz世界通用ISM频段。该芯片集成了射频接收器、射频发射器、频率综合器、GFSK调制器、GFSK解调器等功能模块,并且支持一对多线网和带ACK的通信模式。发射输…

C# Onnx Ultra-Fast-Lane-Detection-v2 车道线检测

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Text; usi…

最新ai系统ChatGPT程序源码+详细搭建教程+以图生图+Dall-E2绘画+支持GPT4+Midjourney绘画

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

高频SQL50题(基础版)-1

文章目录 主要内容一.SQL练习题1.1757-可回收且抵制的产品代码如下(示例): 2.584-寻找用户推荐人代码如下(示例): 3.595-大的国家代码如下(示例): 4.1148-文章浏览代码如下(示例): 5…

「2023·最新盘点」十大热门WebStorm主题

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。被广大中国JS开发者誉为"Web前端开发神器""最强大的HTML5编辑器""最智能的JavaSscript IDE"等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。 WebStorm v20…

前聚美优品运维负责人谈CMDB

导读CMDB大家并不陌生,在运维的工作中几乎都会用到CMDB,在聚美内部我们也称它为资产系统,管理整个服务器的资产,当然也包括一些配置上的变更。 讲师介绍 张川,前聚美优品运维负责人。任职聚美优品四年间,负…

Brox光流法公式推导

第1章 数学基础 Brox光流法使用变分方法求解,得到使总能量最小的流场。涉及到的数学概念及工具包含:微分,变分,泛函,Euler-Lagrange equation。 1.1. 函数及微分 微分是微积分的一个基本概念,它用于描述函数在某一点附近的变化率。在物理学和工程学中,微分常被用来描…

基于Taro + React 实现微信小程序半圆滑块组件、半圆进度条、弧形进度条、半圆滑行轨道(附源码)

效果: 功能点: 1、四个档位 2、可点击加减切换档位 3、可以点击区域切换档位 4、可以滑动切换档位 目的: 给大家提供一些实现思路,找了一圈,一些文章基本不能直接用,错漏百出,代码还藏着掖…

[极客大挑战 2019]Secret File 1

题目环境: 网页什么都没有,GET那里也没有任何参数和文件 F12查看隐藏文件发现隐藏文件点进去看看发现一个可点击按钮SECRET 好家伙,什么都没有 这里猜测还有隐藏文件目录扫描使用工具dirsearch命令:python dirsearch.py -u [http:…

LLaMA-Adapter源码解析

LLaMA-Adapter源码解析 伪代码 def transformer_block_with_llama_adapter(x, gating_factor, soft_prompt):residual xy zero_init_attention(soft_prompt, x) # llama-adapter: prepend prefixx self_attention(x)x x gating_factor * y # llama-adapter: apply zero_init…