MySQL利用关系代数进行查询_关系代数

MySQL利用关系代数进行查询_关系代数关系代数的由来首先从宏观上来认识一下关系演算这个概念 换句话讲也就是什么是关系代数 这也是我在接触一些东西的首要工作 大家都知道对于关系型数据库的数据库操作语言分为查询和更新两类 而查询语言这块 又分为关系代数语言与关系演算语言 这里讲的关系代数的由来首先从宏观上来认识一下关系演算这个概念 换句话讲也就是什么是关系代数 这也是我在接触一些东西的首要工作 大家都知道对于关系型数据库的数据库操作语言

关系代数的由来 首先从宏观上来认识一下关系演算这个概念,换句话讲也就是什么是关系代数,这也是我在接触一些东西的首要工作。大家都知道对于关系型数据库的数据库操作语言分为查询和更新两类。而查询语言这块,又分为关系代数语言与关系演算语言。这里讲的

关系代数的由来

首先从宏观上来认识一下关系演算这个概念,换句话讲也就是什么是关系代数,这也是我在接触一些东西的首要工作。大家都知道对于关系型数据库的数据库操作语言分为查询和更新两类。而查询语言这块,又分为关系代数语言与关系演算语言。这里讲的就是关系代数。所以可以这样定义,关系代数就是为数据库操作语言进行查询的集合操作。

关系代数中的操作可分为两类

(1)传统的集合操作:并、差、交、笛卡儿积、除法。

(2)扩充的关系操作:投影、选择、连接、。

常见符号

697c53bce42c08fcb8484903821aee70.png

五种基本的关系代数

1、并

设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为R∪S。形式定义如下:喎?http://www.2cto.com/kf/ware/vc/” target=”_blank” class=”keylink”>vcD4KPHA+UqHIU6HUe3Qg” t∈R ∨ t∈S},t是元组变量,R和S的元数相

0bf6b5767cc8a5936ec1c7a1d601d697.png

2、差(Difference)

设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。形式定义如下:

R-S≡{ t ” t∈R ∧ t∈S},R和S的元数相同。

6310c7775f63d4c679e5fa9b79eb1642.png

3、笛卡儿积(Cartesian Product)

设关系R和S的元数分别为r和s,定义R和S的笛卡儿积是一个(r+s)元的元组集合,每个元组的前r个分量(属性值)来自R的一个元组,后s个分量来自S的一个元组,记为R×S。

3a04a55177e2b55806d6ec5bc8914479.png

4、投影(Projection)

这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。

表示符号

π

8268460aa1d128dd9fea6e2d957354f5.png

5、连接

这个操作是根据某些条件,对既定的集合进行条件选择。

σ为选择运算符

92f0fab673c6db8bcde1f16726782660.png

对于基本的关系代数操作,可以发现。之前的三种针对的都是两个或者两个至上的集合操作,而后两种操作的都为一个集合。

扩充的代数操作

这个操作就是从两个集合内找出既属于R有属于S集合的元素的集合。符号:∩

如图

f098ab733c2b446b2232e9ca0a0f30a7.png

图中两个集合相同的部分为第一行元素。

除的操作要求进行操作的两个关系集合需要有重叠的属性。

实例图表

eafc6e5f48103c28c4c563777eaa610c.png

结果

7b9ca55065d079b540677d65b1138e39.png

连接

所有的连接操作都是在进行笛卡尔积的基础上进行一些相应的条件操作。所以根据条件不同,分为等值连接、自然连接、θ连接。

θ连接

cf1a1cdc51547f232462d998f572220f.png

表示从RS中分别选取R的第i列和S的第j列进行连接操作。

等值连接

等值连接就是当θ的值为等于号时的连接。

自然连接

自然连接是一种比较特殊的连接,要求两个连接的关系中必须要有相同的属性。如

d9c694c37fc908cb7ead53ab668a3c20.png

如图,两个集合存在相同的属性Sno这样将这两个不同集合中相同属性的一行连接,得到结果。

如上就是关系代数的一些基本操作和扩展操作,更多的需要从实际的例子来理解定义这样会便于理解。对于基本的操作,并、差、笛卡尔积针对的都是两个不同的集合的操作;而投影和连接针对既定集合的操作。扩展中的运算主要是连接,连接根据θ的值的不同来区分到底是自然连接和等值连接;等值连接和自然连接都是θ值在不同情况下的特殊状态。

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229688.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午4:07
下一篇 2026年3月16日 下午4:07


相关推荐

  • Myeclipse6.0.1注册码获取方法[通俗易懂]

    Myeclipse6.0.1注册码获取方法[通俗易懂]工具是:Myeclipse6.0.1获取zhucem

    2026年4月15日
    5
  • BigDecimal保留2位小数的处理

    BigDecimal保留2位小数的处理整理 1 gt 0 00 或者 00 格式 小数点后两位 不足用 0 补足 DecimalForma newDecimalFo 00 System out println df1 format 2 2 2 20System out println df1 format 2 246 2 25 2 gt

    2026年1月24日
    2
  • AD板卡数据采集程序

    AD板卡数据采集程序apriljia com 采用 MP442EAD 板卡 QT5 7 MinGW32 QML amp C 制作 利用 QML 制作软件界面 C 实现对数据的采集和分析处理 界面由自己设计 界面所用素材部分为自己制作 部分为网上搜集加以处理而得 使用 QtChart 实现图形显示波形功能 不同通道不同颜色 简洁清晰 能够放大缩小看清细节 通过 MP442EAD 板卡进行多通道 AD 采集 可设定通道数 转换周期

    2026年3月19日
    2
  • 常用内存数据库介绍

    常用内存数据库介绍原文地址 http blog csdn net jackxinxu210 article details nbsp 内存数据库简介 1 1 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 概念一 什么是内存数据库 nbsp 传统的数据库管理系统把所有数据都放在磁盘上进行管理 所以称做磁盘数据库 DRDB Disk ResidentData 磁盘数据库需要频繁地访问磁盘来进行数据的操作

    2026年3月17日
    2
  • 收藏!一篇教会你写90%的shell脚本

    收藏!一篇教会你写90%的shell脚本还不会写shell脚本?这篇文章教会你写90%的shell脚本!

    2022年7月11日
    26
  • manage.py作用_python源码库

    manage.py作用_python源码库源码目录结构ApiResponse这个类没啥好说的classApiResponse(Response):"""继承了requests模块中的Response类

    2022年7月30日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号