关系代数运算中的集合运算符和关系运算符

news2024/9/28 9:11:20

关系代数是一种抽象的查询语言,是研究关系模型的数学工具。关系代数的运算对象是关系,运算结果也是关系。关系代数运算符主要分为集合运算符和关系运算符两大类。

集合运算符和关系运算符.png

集合运算符有笛卡尔积、并、交、差,关系运算符有除、选择、投影、连接,下面详细介绍两类运算符的概念和运算规则。

1.笛卡儿积

在数学中,笛卡儿积是对两个集合相乘,假没对集合A和集合B进行笛卡儿积,结果中第1个对象是A的成员,第2个对象是B的所有可能有序对的其中一个成员。
1692165537495_笛卡尔积.png

在数据库中,广义笛卡儿积是对两个关系进行操作,产生的新关系中记录个数为两个关系中记录个数的乘积。

假设有关系R和关系S,关系R有n个字段,关系S有m个字段,R和S的笛卡儿积(即R×S)的结果是一个具有n+m个字段的新关系。在新关系中,记录的前n个字段来自R,后m个字段来自S,记录的总个数是R和S中记录的乘积。

关系R中有2个字段分别为学号和学生姓名;2个记录分别为(1,张三)和(2,李四)

关系S中有2个字段分别为班级号和班级名称;2个记录分别为(001,软件班)和(002,网络班),R×S共有2+2个字段,分别为学号、学生姓名、班级号和班级名称。

R×S共有2×2个记录,分别为(1,张三,001,软件班)、(1,张三,002,网络班)、(2,李四,001,软件班)、(2,李四,002,网络班)。

1692165994040_笛卡尔1.png

2.并、交、差

并、交、差运算要求参与运算的两个关系具有相同数量的字段,其运算结果是一个具有相同数量字段的新关系。

假设有关系R和关系S,RUS表示合并两个关系中的记录,RnS表示找出既属于R又属于S的记录,R~S表示找出属于R但不属于S的记录。

关系R中有2个记录,分别为(1,张三)、(2,李四)。

关系S中有2个记录,分别为(1,张三)、(3,小明。

RS运算:关系R和关系S中都有记录(1,张三),需要将该记录去重,结果为(1,张三)、(2,李四)、(3,小明)。

RnS运算:记录(1,张三)既在关系R中,又在关系S中,结果为(1,张三)。

RS运算:记录(2,李四)属于关系R,但不属于关系S,结果为(2,李四)。

并、交、差

3.除

除运算是笛卡儿积的逆运算。

假设有关系R和关系S,除运算需满足S的字段集是R字段集的真子集,R÷S的结果是R字段集减去S字段集的结果。例如,R(A,B,C,D)÷S(C,D)的结果由A和B两个字段构成。

R÷S1表示查询学号为2的学生所选择的课程,由关系R可以得知学号为2的学生选择的课程号为1、2、3。

R÷S2表示查询学号为2和3的学生共同选择的课程,根据关系R可以得知学号为3的学生选择的课程号为1、2,学号为2的学生所选择的课程为1、2、3,那么R:S2的结果为1、2。

除运算

4.选择和投影

选择是在一个关系中将满足条件的记录找出来,即水平方向筛选;

投影是在一个关系中去掉不需要的字段,保留需要的字段,即垂直方向筛选。

选择操作:o学号=1®表示在关系R中查找学号为1的学生,找到了记录(1,张三,男);

投影操作:π学号,学生姓名®表示在关系R中查找学号和学生姓名,也就是保留学号字段和学生姓名字段,去掉学生性别字段。

选择和投影

5.连接

连接是在两个关系的笛卡儿积中选取字段间满足一定条件的记录。

常用的连接方式有等值连接和自然连接。

假设有关系R和关系S,使用A和B分别表示R和S中数目相等且可比的字段组。等值连接是在R和S的笛卡儿积中选取A、B字段值相等的记录。

自然连接是一种特殊的等值连接,要求R和S必需有相同的字段组,进行等值连接后再去除重复的字段组。

关系R中有4个记录,关系S中有3个记录,R×S共有12个记录,

等值连接运算结果为RxS中班级号相等的记录。

自然连接运算结果就是在等值连接运算的结果中去除重复的字段组班级号。

1692167221367_连接.png

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

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

相关文章

ABAP内表与XML格式互转

1需求说明 在系统交互中需要将SAP内表转换为XML文件,发送给其他系统,并且将其他系统返回的XML文件转换为SAP内表。 2创建转换编辑器 事务代码:STRANS 选择简单转换 以图形方式编辑 右键插入新行 选择参考的类型。此处的TYPE类型是SE11中创…

基于STM32的指纹门禁系统

基于STM32的指纹门禁系统 系统简介 指纹系统,可以存指纹;指纹对了之后开门; 材料 STM32F103C8T6芯片OLED液晶显示屏杜邦线AS608模块用keil5进行开发 开始制作 制作过程 AS608模块调试 模块原理 模块是通过串口通信,采用回复式通信。 这…

基于Python编写个语法解析器

这篇文章主要为大家详细介绍了如何基于Python编写个语法解析器,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下 − 目录 前言选型效果实现 字符指针错误类型语法解析交互 前言 目的纯粹,基于Python做…

26、springboot的自动配置03--核心功能--自定义条件注解及使用

开发自己的自动配置------开发自己的条件注解 ★ 自定义条件注解 好处有两个: 1. 真正掌握Spring boot条件注解的本质。 2. 项目遇到一些特殊的需求时,也可以开发自己的自定义条件注解来解决问题。自定义条件注解: ▲ 所有自定义注解其实都…

香港服务器三网直连内地线路什么意思?好用吗?

​  三网直连内地是指香港服务器可以直接连接中国内地的电信、联通和移动三大运营商网络,避免了中间网络干线的支持。这样可以实现直接、快速、稳定的网络访问,提高用户对网络访问的效率,减少网络访问问题和拥堵的现象。 香港服务器直连内地…

开源项目AJ-Captcha使用小结

在网上看到开源项目AJ-Captcha,想把它加入到自己的项目中,遇到了一些问题,记录一下。 AJ-Captcha: 行为验证码(滑动拼图、点选文字),前后端(java)交互,包含vue/h5/Android/IOS/flutter/uni-app/react/php/go/微信小程…

C# 读取pcd点云文件数据

pcd文件有ascii 和二进制格式,ascii可以直接记事本打开,C#可以一行行读。但二进制格式的打开是乱码,如果尝试程序中读取,对比下看了数据也对不上。 这里可以使用pcl里的函数来读取pcd,无论二进制或ascii都可以正确读取…

Fortinet数据中心防火墙及服务ROI超300%,Forrester TEI研究发布

近日,专注网络与安全融合的全球网络安全领导者 Fortinet(NASDAQ:FTNT)联合全球知名分析机构Forrester发布总体经济影响独立分析报告,详细阐述了在企业数据中心部署 FortiGate 下一代防火墙(NGFW&#xff09…

web集群学习:搭建 LNMP应用环境

目录 LNMP的介绍: LNMP组合工作流程: FastCGI介绍: 1、什么是 CGI 2、什么是 FastCGI 配置LNMP 1、部署LNMP环境 2、配置LNMP环境 LNMP的介绍: 随着 Nginx Web 服务的逐渐流行,又岀现了新的 Web 服务环境组合—…

Ae 效果:CC WarpoMatic

过渡/CC WarpoMatic Transition/CC WarpoMatic CC WarpoMatic(CC 自动扭曲)主要用于创建动态的扭曲和弯曲过渡效果,可以在两个图层之间生成独特的过渡动画。 ‍ 这个效果允许用户根据特定的图层特性(如亮度、对比度差异、亮度差异…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)九:自定义组件封装下

一、本章内容 续上一张,本章实现一些自定义组件的封装,包括文件上传组件封装、级联选择组件封装、富文本组件封装等。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 基于VUE3+Layui从头搭建通用后台管

什么是大数据测试?有哪些类型?应该怎么测?

随着目前世界上各个国家使用大数据应用程序或应用大数据技术场景的数量呈指数增长,相应的,对于测试大数据应用时所需的知识与大数据测试工程师的需求也在同步增加。 针对大数据测试的相关技术已慢慢成为当下软件测试人员需要了解和掌握的一门通用技术。…

vue 安装并配置vuex

1.安装vuex命令:npm i vuex3.6.2 2.全局配置 在main文件里边导入-安装-挂载 main.js页面配置的 import Vue from vue import App from ./App.vue import Vuex from vuex//导入 Vue.use(Vuex)//安装插件 // 创建store对象 const store new Vuex.Store({ }) // 挂载到vue对象上…

ClickHouse AST is too big 报错问题处理记录

ClickHouse AST is too big 报错问题处理记录 问题描述问题分析解决方案1、修改系统配置2、修改业务逻辑 问题描述 项目中统计报表的查询出现 AST is too big 问题,报错信息如下: 问题分析 报错信息显示 AST is too big。 AST 表示查询语法树中的最大…

7-3 求给定精度的简单交错序列部分和

分数 15 全屏浏览题目 切换布局 作者 C课程组 单位 浙江大学 本题要求编写程序,计算序列部分和 1 - 1/4 1/7 - 1/10 ... 直到最后一项的绝对值不大于给定精度eps。 输入格式: 输入在一行中给出一个正实数eps。 输出格式: 在一行中按照“sum S”的格式输出…

2023年排行前五的大规模语言模型(LLM)

2023年排行前五的大规模语言模型(LLM) 截至2023年,人工智能正在风靡全球。它已经成为热门的讨论话题,吸引了数百万人的关注,不仅限于技术专家和研究人员,还包括来自不同背景的个人。人们对人工智能热情高涨的原因之一是其在人类多…

新版本Qt Creator无法提示错误、不报红

问题 更新新版本Qt Creator后无法实时提示错误,在开发中非常难受 如图,此时w后面少了;Qt Creator却只有红色横线标识,没有具体的错误。 解决方法 首先要知道,提供这个错误显示功能是ClangCodeModel插件提供的,因此…

Kafka-eagle监控平台

Kafka-Eagle简介 在开发工作中,当业务不复杂时,可以使用Kafka命令来进行一些集群的管理工作。但如果业务变得复杂,例如:需要增加group、topic分区,此时,再使用命令行就感觉很不方便,此时&#x…

FPGA_学习_15_IP核_VIO

前一篇博客我们提到在线调试的时候, 可执行文件只要烧进板子,程序它就会自己跑起来,不会等你点 这个按钮,它才开始跑。我们测试的模块中,里面可能有几个我们关心的信号,它会在程序刚运行很短的时间内发生状…

matlab初

matlab语言方式与c有很大的相似之处,此篇记录一下自己初步学习matlab的一些过程和代码 学习matlab主要是从b站上,也从matlab官网去学习了一下相关感兴趣的函数 版本是之前下好的R2022b 1.变量命名,这与c语言变量命名要求的规则非常相似 简单…