数据库—关系代数

news2024/12/26 9:25:03

传统的集合运算

在数据库中的关系代数运算有以下三种基本运算


  • 必须满足两个表之间的属性个数必须一样。(必须具有相容性)

投影与选择运算

  • 投影:π L _L L( R )
    解释->π是投影符号,L是R表中的属性列,从R中选出L的属性列,叫做投影
    好比SQL语句:select sno from student,从学生表中投影出sno学号。(当然投影属性可以不止一个,用逗号隔开就好,不管是SQL语句还是关系投影都是用逗号隔开就行)
  • 选择:σ X _X X θ _θ θ Y _Y Y(R)
    解释->条件选择, X _X X θ _θ θ Y _Y Y表示条件θ在这里代表比较运算符大于或等于这些,满足条件的就从R表中选择出来,就叫做选择操作
    好比SQL语句:select * from student where sno=‘01’,这里没有作投影操作,所以只要满足条件就会整个元输出,所以是 * 。
  • Tips
    这里的投影与选择操作都是基于集合来运算的,所以可以结合并交叉运算符来写出更为复杂的查询语句。

连接运算

  • R × X _X X θ _θ θ Y _Y Y S
    其实就是将两个表的元组拼在一起作笛卡尔积运算,并且这是带有条件的运算, X _X X θ _θ θ Y _Y Y就代表连接条件
    在这里插入图片描述

  • R S (自然连接)
    没有写连接条件的就叫做自然连接,自然连接就是等值连接 X _X X = _= = Y _Y Y但是他会将两个表的相同属性列合并。如果是显示的写出该等值条件,也就是上述的等值连接就不会将相同属性列去掉,而是属于上述R X _X X θ _θ θ Y _Y Y S 操作。这也是自然连接的一个好处,能自动将相同属性列去掉只保留一份。
    注意:自然连接两个表的属性列的属性名字要相同才能进行自然连接。既然要同名,那我可以使用ρ 直接给他换个名字之后再进行自然连接(就是下面提到的重命名)
    在这里插入图片描述
    自然连接默认做的操作

    • R×S做笛卡尔积操作
    • 将属性相等的进行等值条件连接
    • 去除重复的属性
  • 选择投影的等值条件连接与自然连接是等价的。
    R▷◁S=∏B(σR.A=S.A (R×S))

除法

象集

这个概念这是如其名了,十分抽象。不过老师的PPT的一个例子讲的很好。
在这里插入图片描述
如果但看概念真的很抽象,还是例子一看就懂。
意思就是假如你要找小明的象集,那在这个关系表,有关小明的元组中将小明这个属性值去除掉,每一个元组除了小明这个属性值外就对应一个象集元素,全部加起来就是小明的象集。
有点像现实生活中的关系,你跟哪个群体是一伙的,那么那个团体的人就是你的人际关系的一个元素,你的所有群体的每一个团体集合就是一个象集。

除法

象集理解了除法就好理解了,两个表做除法就是一个被除数与除数的关系。

  • 被除数与除数
    在数据库的关系代数中,作为被除数一方,是提供给除数去对比的,让除数找到自己的部分,然后找到与自己部分或者自己就在那个集合里面组成的那个元组的其他属性,然后那个就是俩表做除法的结果。
    用文字解释就很是挺抽象的,老师的PPT例子也做得很好,下面给出截图。
  • 总的来说就是
    被除数就是参照表,除数去找到自己的一部分,在被除数中奖自己的一部分删除掉,剩下的属性数据就是除法的结果。
    在这里插入图片描述

收获

在集合中做运算一律都是不会出现重复的,因为集合本身就是这样定义的,没有重复的元素。

重命名

  • ρ
    在这里插入图片描述
    将R重命名为S,如果不写括号内的A1A2…就代表原封不动的将R的属性名搬过来给S,只是将R重名为S而已,如果要改变属性列就要写括号内的内容。

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

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

相关文章

临时文件中转服务的搭建-chfs软件的使用

因为经常用到远程桌面连接,所以本地pc和远程pc间的文件传输一直是个经常遇到的问题,尝试过用vftp搭建ftp服务,但是该服务在许多vps上被禁用,且windows上使用也要进行设置,比较麻烦。所幸发现了ods-im/CuteHttpFileServ…

接口测试如何做?你真的会做吗?全网超全整理实战案例...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 API测试的流程 准…

分布式事务Seate

一、Seata简介 1、Seata的核心组件 TC (Transaction Coordinator)事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。TM (Transaction Manager)事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。RM (Resourc…

2023下半年北京/上海/深圳软考(中/高级)认证招生

软考是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资格考试。 系统集成…

Docker安装与启动

Docker安装与启动 文章目录 Docker安装与启动前言容器与虚拟机比较 1、安装Docker2、设置ustc的镜像3、Docker的启动与停止总结 前言 容器与虚拟机比较 虚拟机(VM)是计算机系统的仿真。简而言之,它可以在实际上是一台计算机的硬件上运行看起…

Docker教程

Docker 能解决的问题 ⾸先,我们先来看⼏个问题: 1. 合作开发的时候,在本机可以运⾏,在别⼈的电脑上跑不起来。 这⾥我们以 Java Web 应⽤程序为例,⼀个 Java Web 应⽤程序涉及很多东⻄,⽐如 JDK 、 Tomc…

机器学习 day21(Tensorflow代码实现)

Tensorflow代码实现 在tensorflow中训练神经网络模型的步骤:第一步:指定模型,并告诉tensorflow按何种方式计算。第二步:使用特定的损失函数编译模型。第三步:训练模型

企业知识管理要怎么做,才能清晰有序?

在当今快速变化的商业环境中,企业知识管理的重要性日益凸显。有效的知识管理可以帮助企业整理、保存和传递知识,提高员工的工作效率和创新能力,从而为企业获得竞争优势奠定基础。本文将介绍企业在进行知识管理时应采取的措施,以确…

微型导轨的使用寿命能达到多久?

微型导轨,顾名思义就是体积很小的导轨,一般是应用在小型化设备中的,像半导体设备,医疗设备,IC制造设备,X-Y table,精密测量及检测仪器,高速皮带驱动设备,高速移载设备等都…

传说中,让测试猿分分钟心酸的五大谣言

谣传1:测试无聊 综观现今软件测试的一些轶事,我对某些错误想法的频繁出现感到吃惊。尽管有很多可以罗列,但是我还是想分享测试的五个最常见的谣传(基于我短暂的经验)。我发现前三个盛行于一些主流的新闻文章&#xff…

STM32F407系统时钟的配置和查看方法

1、系统时钟的来源 STM32F407具有两个PLL,用于产生不同的时钟信号。这里主要来讨论主PLL时钟。主PLL时钟的时钟源有两个信号,分别是上边提到的HIS信号和HSE信号。PLL通过把这两个信号倍频,分频等达到更高频率的时钟信号。一般来说&#xff0…

Linux6.yum,git,gdb

1.yum三板斧 yum list :显示所有能安装的软件。 yum lisy | grep 软件 :搜索软件。 yum install -y :安装软件。 yum remove -y 软件 :删除已经安装的软件。 2.git git clone 仓库网址 :添加仓库,按回车之后。需要输入账户和密码。 git add 文件 :把文件添加…

图像几何变换、仿射变换、透视变换

图像几何变换:平移、缩放、旋转 图像旋转变换:(x,y)为原图像坐标系,(x’,y’)为以(x0,y0)为中心的笛卡尔坐标系,图像以x0,y0)为中心进行旋转。 图像坐标系->笛卡尔坐标系->图像坐标系。如果是以图像中心旋转,则left=W/2,right=H/2,其中W和H为图像旋转…

MinGW 编译jsoncpp 的下载和编译

目录 1. jsoncpp 的下载 1.1 下载地址,点击可直接下载 1.2 下载完解压内容如下 2. jsoncpp 的编译 2.1 配置 2.2 生成 3. jsoncpp测试使用 1. jsoncpp 的下载 1.1 下载地址,点击可直接下载 mirrors / open-source-parsers / jsoncpp GitCode 1…

数据库监控与调优【十五】—— ORDER BY语句优化

ORDER BY语句优化 最好的做法:利用索引避免排序 实验 目的:哪些情况下ORDER BY子句能用索引避免排序,哪些情况下不能 之前说过,BTree数据结构里面的关键字,也就是索引值都是按照顺序排列的,那么&#xf…

端午节粽子代码(python)需要的拿走,顺带给博主一点关注呗~~~~

import math from turtle import * #胡阳 # 画粽子 def rice_dumpling():pensize(4) # 画笔宽度pencolor(4, 60, 12) # 画笔颜色fillcolor(4, 70, 19) # 填充色begin_fill()fd(200) # 向前circle(15, 120) #画圆弧fd(200)circle(15, 120)fd(200)circle(15, 120)fd(200)circle(1…

自动化测试你一定要知道的几个技巧,包你受用终身

自动化测试是应用程序在非常短的时间内执行软件的整个生命周期的过程,使测试软件具有很大的充分性和有效性。在这个程序设计的系统中,测试人员编写一个脚本,并借助合适的软件对软件进行测试。自动化测试背后的基本目标是提高测试效率和提高软…

C 语言经典100例(菜鸟在线工具)

C 语言经典100例 C 语言经典100例 菜鸟工具 C代码在线运行工具 搜索引擎 前端开发

农产品批发采购APP开发 手机里的农产品市场

农业发展是民生之本,随着互联网时代的到来各行各业都迎来了新的发展机遇,农产品批发采购、配送服务等方面也发生了很大的改变,各种农产品商城APP、农产品批发采购平台、农产品供应管理系统的开发让包含农产品信息、数据、物流、配送、仓储、质…

关于tcp协议的18个常问面试题(进阶版)

TCP是一个基础协议,这里相关的十八个问题也都是常见的问题。无论是前端还是后端同学,都应该掌握的这些问题。过于基础的问题,比如TCP格式是什么 占多少字节 三次握手的流程等等,由于过于简单,我们不介绍,本…