搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
码创造者
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【Mavros解析 】02 ROS服务以及在mavros中体现_ros mavros
2
从零实现强化学习RLHF代码(PPO、RLOO)_rlhf 代码
3
网络安全行业持证上岗的重要性
4
Oracle数据库管理:从基础到高级应用【文末送书】_oracle数据库介绍
5
query(数组数组 区间包含对子个数)_query的数组
6
Postman简介_psotman 2012
7
使用Python实现数据库和Excel之间的导入导出_如何用python将数据库中的数据导出到excel?
8
达摩院&浙大&上海人工智能实验室推出洛犀平台:大小模型端云协同进化
9
[python] 构建数据流水线(pipeline)
10
分子对接技术
当前位置:
article
> 正文
关系模型之关系代数_差操作代数
作者:码创造者 | 2024-07-31 11:47:51
赞
踩
差操作代数
一、关系代数概述
1.1 关系代数运算的特点
基于集合,提供了一系列的关系代数操作:并、差、笛卡尔积(广义积)、选择、投影和更名等基本操作
以及交、连接和关系除等扩展操作,是一种集合思维的操作语言
关系代数操作以一个或多个关系为输入,结果是一个新的关系
用对关系的运算来表达查询,需要指明所用操作,具有一定的过程性
是一种抽象的语言,是学习其他数据库语言,如SQL等的基础
1.2 关系代数运算的基本操作
集合操作
UNION(并)
INTERSECTION(交)
DIFFERENCE(差)
Cartesian PRODUCT(笛卡尔积)
纯关系操作
PEOJECT(投影)
SELECT(选择)
JOIN(连接)
DIVISION(除)
二、关系代数之基本操作
2.1 关系代数运算的约束
某些关系代数操作,如并、差、交等,需满足"并相容性"
并相容性
参与运算的两个关系及其属性之间有一定的对应性、可比性或意义关联性
定义:关系R与关系S存在相容性,当且仅当:
关系R和关系S的属性数目必须相同
对于任意i,关系R的第i个属性的域必须和关系S的第i个属性的域相同
2.2 “并”操作
定义:假设关系R和关系S是并相容的,则关系R与关系S的并运算结果也是一个关系,记作:
,它由或者出现在关系R中,或者出现在S中的元组构成
数学描述:
R
∪
S
=
{
t
∣
t
∈
R
∨
t
∈
S
}
R
∪
S
=
{
t
∣
t
∈
R
∨
t
∈
S
}
,其中t是元组
并运算是将两个关系的元组合并成一个关系,在合并时去掉重复元组
与
运算的结果是同一个关系
汉语中的“或者...或者...”通常意义是并运算的要求
2.3 “差”操作
定义:假设关系R和关系S是并相容的,则关系R与关系S的差运算结果也是一个关系,记作:
,它由出现在关系R中但不出现在关系S中的元组构成
数学描述:
R
−
S
=
{
t
∣
t
∈
R
∧
t
∉
S
}
R
−
S
=
{
t
∣
t
∈
R
∧
t
∉
S
}
,其中t是元组
与
是不同的
汉语中的“是...但不含...”通常意义是差运算的要求
2.4 “笛卡尔积”操作
定义:关系
与关系
的广义笛卡尔积(简称广义积,或笛卡尔积)运算结果也是一个关系,记作:
,它由关系R中的元组与关系S的元组进行所有可能的拼接(或串接)构成
数学描述:
R
×
S
=
{
<
a
1
,
a
2
,
.
.
.
,
a
n
,
b
1
,
b
2
,
.
.
.
,
b
m
>
∣
<
a
1
,
a
2
,
.
.
.
,
a
n
>
∈
R
∧
<
b
1
,
b
2
,
.
.
.
,
b
n
>
∈
S
}
R
×
S
=
{
<
a
1
,
a
2
,
.
.
.
,
a
n
,
b
1
,
b
2
,
.
.
.
,
b
m
>∣<
a
1
,
a
2
,
.
.
.
,
a
n
>∈
R
∧
<
b
1
,
b
2
,
.
.
.
,
b
n
>∈
S
}
当一个检索涉及到多个表时(如果学生表和课程表),便需要将这些表串接或拼接起来,然后才能检索,这时,就要使用广义笛卡尔积运算
R
×
S
=
S
×
R
R
×
S
=
S
×
R
:
为R中的每一个元组都和S中的所有元组进行串接。
为S中的每一个元组都和R中的所有元组进行串接。结果是相同的。
两个关系R和S,它们的属性个数分别为n和m(R是n度关系,S是m度关系)
则笛卡尔积
的属性个数=n+m
两个关系R和S,它们的元组个数分别为x和y(关系R的基数x,S的基数y)
则笛卡尔积
的元组个数=x * y
2.5 “选择”操作
定义:给定一个关系R,同时给定一个选择的条件condition(简记con),选择运算的结果也是一个关系,记作
,它从关系R中选择除满足给定条件condition的元组构成
数学描述:
σ
c
o
n
(
R
)
=
{
t
∣
t
∈
R
∧
c
o
n
(
t
)
=
′
t
r
u
e
′
)
}
σ
c
o
n
(
R
)
=
{
t
∣
t
∈
R
∧
c
o
n
(
t
)
=
′
t
r
u
e
′
)
}
设
,t是R的元组,t的分量记为
,或简写为
条件con由逻辑运算符连接比较表达式组成
逻辑运算符:
,
,┐或者写为and,or,not
比较表达式:
,其中X,Y是t的分量、常量或简单函数,
是比较运算符,
是比较运算符,
θ
∈
{
>
,
≥
,
<
,
≤
,
=
,
≠
}
θ
∈
{
>
,
≥
,
<
,
≤
,
=
,
≠
}
选择操作从给定的关系中选出满足条件的行
条件的书写很重要,尤其是当不同的运算符在一起时,要注意运算符的优先次序,优先次序自高到低为{括弧;
;┐;
;
}
2.6 “投影”操作
定义:给定一个关系R,投影运算结果也是一个关系,记作
,它从关系R中选出属性包含在A中的列构成
数学描述:
设
表示元组t中相应于属性
的分量
投影运算后可以对原关系的列在投影后重新排列
投影操作从给定关系中选出某些列组成新的关系,而选择操作是从给定关系中选出某些行组成新的关系
三、关系代数之扩展操作
3.1 “交”操作
定义:假设关系R和关系S是并相容的,则关系R与关系S的交运算结果也是一个关系,记作:
,它由同时出现在关系R和关系S中的元组构成。
数学描述:
R
∩
S
=
{
t
∣
t
∈
R
∧
t
∈
S
}
R
∩
S
=
{
t
∣
t
∈
R
∧
t
∈
S
}
,t是元组
和
运算的结果是同一个关系
交运算可以通过差运算来实现:
R
∩
S
=
R
−
(
R
−
S
)
=
S
−
(
S
−
R
)
R
∩
S
=
R
−
(
R
−
S
)
=
S
−
(
S
−
R
)
交运算操作示例
查询即参加体育队又参加文艺队的学生信息
汉语中的“既...又...”,“...,并且...”通常的意义就是交运算的要求
3.2 “
-连接”操作
投影与选择草醉哦只是对单个关系(表)进行操作,而实际应用中往往涉及多个表之间的操作,这就需要
-连接操作
定义:给定关系R和关系S,R与S的
连接运算结果也是一个关系,记作
,它由关系R和关系S的笛卡尔积中,选取R中属性A与S中属性B之间满足
条件的元组构成
数学描述:
设
,
,
t是关系R中的元组,s是关系S中的元组
属性A和属性B是具有可比性
是比较运算符,
θ
∈
{
>
,
≥
,
<
,
≤
,
=
,
≠
}
θ
∈
{
>
,
≥
,
<
,
≤
,
=
,
≠
}
在实际应用中,
-连接操作经常与投影、选择操作一起使用
-连接操作示例
更名操作:
,将表SC更名为SC1
注意:在理解的时候可以使用笛卡尔积再进行选择来得到
-连接结果,这只是为了方便理解,在DBMS中可以直接进行连接操作,而不必先形成笛卡尔积
3.3 等值连接
定义:给定关系R和关系S,R与S的等值连接运算结果也是一个关系,记作:
,它由关系R和关系S的笛卡尔积中选取R中属性与A与S中的属性B上的值相等的元组所组成
数学描述:
当
-丽娜姐中的运算符为"="时,就是等值连接,等值连接是
-连接的一个特例
广义积的元组组合并不是都有意义的,另广义积的元组组合数目也非常庞大,因此采用
-连接/等值连接运算可大幅度降低中间结果的保存量,提高速度
等值连接示例
3.4 自然连接
定义:给定关系R和关系S,R和S的自然连接运算结果也是一个关系,记作:
R
⋈
S
R
⋈
S
,它由关系R和关系S的笛卡尔积中选取相同属性组B上值相等的元组所构成
数学描述:
R
⋈
S
=
σ
t
[
B
]
=
s
[
B
]
(
R
×
S
)
R
⋈
S
=
σ
t
[
B
]
=
s
[
B
]
(
R
×
S
)
自然连接是一种特殊的等值连接
要求关系R和关系S必须有相同的属性组B(如R,S共有一个属性
B
1
B
1
,则B是
B
1
B
1
,如R,S共有一组属性
B
1
,
B
2
,
.
.
.
,
B
n
B
1
,
B
2
,
.
.
.
,
B
n
,则B是这些共有的所有属性
R,S属性相同,值必须相等才能连接,即:
R
.
B
1
=
S
.
B
1
a
n
d
R
.
B
2
=
S
.
B
2
.
.
.
a
n
d
R
.
B
n
=
S
.
B
n
R
.
B
1
=
S
.
B
1
a
n
d
R
.
B
2
=
S
.
B
2
.
.
.
a
n
d
R
.
B
n
=
S
.
B
n
才能连接
要在结果中去掉重复的属性列(因结果中
R
.
B
1
R
.
B
1
始终是等于
S
.
B
1
S
.
B
1
所以可只保留一列即可)
自然连接操作示例
书写关系代数表达式的基本思路
检索是否涉及多个表,如不涉及,则可直接采用并、差、交、选择与投影,只要注意条件书写是否正确即可
如果涉及多个表,则检查
能否使用自然连接,将多个表连接起来
如不能,能否使用等值连接或
-连接
还不能,则使用广义笛卡尔积,注意相关条件书写
连接完后,可以继续使用选择、投影等运算,即所谓数据库的“选投联”操作
四、关系代数之复杂扩展操作
4.1 “除”操作
除法运算经常用于求解“查询...全部的/所有的...”问题
前提条件:给定关系
R
(
A
1
,
A
2
,
.
.
.
,
A
n
)
R
(
A
1
,
A
2
,
.
.
.
,
A
n
)
为n度关系,关系
为m度关系。如果可以进行关系R与关系S除运算,当且仅当:属性集
{
B
1
,
B
2
,
.
.
.
,
B
m
}
{
B
1
,
B
2
,
.
.
.
,
B
m
}
是属性集
{
A
1
,
A
2
,
.
.
.
,
A
n
}
{
A
1
,
A
2
,
.
.
.
,
A
n
}
的真子集,即m<n
定义:关系R和关系S的除运算结果也是一个关系,记作
R
÷
S
R
÷
S
,分两部分来定义
先定义
R
÷
S
R
÷
S
结果的属性应该有哪些
设属性集
{
C
1
,
C
2
,
.
.
.
,
C
k
}
=
{
A
1
,
A
2
,
.
.
.
,
A
n
}
−
{
B
1
,
B
2
,
.
.
.
,
B
m
}
{
C
1
,
C
2
,
.
.
.
,
C
k
}
=
{
A
1
,
A
2
,
.
.
.
,
A
n
}
−
{
B
1
,
B
2
,
.
.
.
,
B
m
}
,则有k=n-m则
R
÷
S
R
÷
S
结果关系是k度关系,由
{
C
1
,
C
2
,
.
.
.
,
C
k
}
{
C
1
,
C
2
,
.
.
.
,
C
k
}
属性构成
再定义
R
÷
S
R
÷
S
元组怎样形成
在设关系
R
(
<
a
1
,
.
.
.
,
a
n
>
)
R
(
<
a
1
,
.
.
.
,
a
n
>
)
和关系
S
(
<
b
1
,
.
.
.
,
b
m
>
)
S
(
<
b
1
,
.
.
.
,
b
m
>
)
,那么关系
R
÷
S
R
÷
S
结果关系为元组
<
c
1
,
.
.
.
,
c
k
>
<
c
1
,
.
.
.
,
c
k
>
的集合,元组
<
c
1
,
.
.
.
,
c
k
>
<
c
1
,
.
.
.
,
c
k
>
满足下述条件:
它与S中的每一个元组
<
b
1
,
.
.
.
,
b
m
>
<
b
1
,
.
.
.
,
b
m
>
组合形成一个新元组都是R中的某一个元组
<
a
1
,
.
.
.
,
a
n
>
<
a
1
,
.
.
.
,
a
n
>
。
数学描述:
R
÷
S
=
{
t
∣
t
∈
Π
R
−
S
(
R
)
∧
∀
u
∈
S
(
t
u
∈
R
)
}
=
Π
R
−
S
(
R
)
−
Π
R
−
S
(
(
Π
R
−
S
(
R
)
×
S
)
−
R
)
R
÷
S
=
{
t
∣
t
∈
Π
R
−
S
(
R
)
∧
∀
u
∈
S
(
t
u
∈
R
)
}
=
Π
R
−
S
(
R
)
−
Π
R
−
S
(
(
Π
R
−
S
(
R
)
×
S
)
−
R
)
除操作示例
4.2 “外连接”操作
定义:两个关系R与S进行连接时,如果关系R(或S)中的元组在S(或R)中找不到相匹配的元组,则为了避免该元组信息丢失,从而将改元组与S(或R)中假定存在的全为空值的元组形成连接,放置在结果关系中,这种连接称之为外连接(Outer Join)
外连接=自然连接(或
连接)+失配的元组(与全空元组形成的连接)
外连接的形式:左外连接、右外连接、全外连接
左外连接=自然连接(或
连接)+左侧表中失配的元组
右外连接=自然连接(或
连接)+右侧表中失配的元组
全外连接=自然连接(或
连接)+两侧表中失配的元组
外连接操作示例
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/码创造者/article/detail/908696
推荐阅读
article
软件
项目管理
【
知识点
总结】...
软件
项目管理
知识点
总结_
软件
项目管理
软件
项目管理
目录 一、
软件
项目管理
概述 1.项目 ...
赞
踩
article
Pycharm
激活_
pycharm
-
professional
-
2
0
2
4.1.
2
...
使用方法: 一、打开最新版本的
pycharm
二、激活时选择License server 填入http://idea.i...
赞
踩
article
buck
dcm
占空比
计算_
电源
老兵,多年技术笔记曝光!
BUCK
,
BOOST
,
FLYBACK
,
LLC...
点击上面“卧龙会IT技术”关注我们这些年都用到了很多的
电源
拓扑结构(
BUCK
,
BOOST
,
FLYBACK
,
LLC),设计...
赞
踩
article
检索所
学
课程
包含
学
生
S3所
学
课程
的
学
生
学
号...
检索所
学
课成包含
学
生
S3所
学
课程
的
学
生
学
号问题描述sql代码思路问题描述分别有表如下:教师关系 T (T#,TNAME,...
赞
踩
article
Java
基础知识
回顾整理_
java
接受
一个
参数
怎么才能是非
对象
引用
...
基本知识1、JVM、JDK和JRE JVM:是运行
Java
字节码的虚拟机,字节码和不同系统的虚拟机是实现
Java
语言跨...
赞
踩
article
LWIP
内存
管理之
动态
内存
池_
memp
num
localhostlist...
无论在哪一种系统中,
动态
内存
管理都是一个非常重要的机制。无论在内核对各种网络数据的接收和处理本质上是对各种
内存
的分配、传...
赞
踩
article
Go
reflect
初探
_
reflect
.
append
...
在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本 身状态或行为的一种能力。用比喻来...
赞
踩
article
You have an error in
your
SQL
syntax
;
check
the ma...
Mysql运行sql文件错误You have an error in
your
SQL
syntax
;
check
th...
赞
踩
article
数据
可视化
理论
学习_
理论
可视化
...
如果我们手中 只有解决具体问题的工具,没有统一的方法论,那我们也无法一劳永逸地解决问题的根本。不管我 们用什么绘图系统绘...
赞
踩
article
Kimi
高效
使用
技巧
,
80%
的
人
都不知道_
kimi
使用
方法...
Kimi
的
优势就在于总结和分析长文
,
这个也是最佳
使用
场景。针对这个
技巧
,
我介绍以下几种提示词
,
方便我们快速
使用
。## ...
赞
踩
article
C
语言
变量
命名
规范_c
语言
变量
名
命名
规则...
C
语言
变量
命名
规范(1)i(常用n),int,整型,iSize(2)n(常用s或sh),short,短整型,nPort(...
赞
踩
article
BUCK
/
BOOST
电路原理...
BUCK
/
BOOST
电路原理
BUCK
/
BOOST
电路原理 升压和降压电路,就是指电力电子...
赞
踩
article
CJSON
简单介绍
_
cjson
是
什么...
CJSON
简介
_
cjson
是
什么
cjson
是
什么 jso...
赞
踩
article
Postman
深度解析:打造高效
接口
测试
自动化
流程_
postman
做
测试
的
核心是什么...
接口
测试
是确保软件系统各组成部分能够正确交互
的
关键环节。随着现代软件系统
的
复杂性增加,
接口
的
数量和类型也在不断增长,这给...
赞
踩
article
研读
Rust
圣经解析——
Rust
learn
-15(
unsafe
Rust
)_
rust
圣经
git
地...
不过千万注意,使用不安全
Rust
风险自担:如果不安全代码出错了,比如解引用空指针,可能会导致不安全的内存使用。我们在...
赞
踩
article
高等数学
微
积分
归纳总结:
中
值
定理
(大全包括函数、微分、
积分
)_
积分
中
值
定理
高数...
本人总结的用于在考研
中
使用,力求全面和简洁的介绍_
积分
中
值
定理
高数
积分
中
值
定理
高数 ...
赞
踩
article
Attention
Is All You Need的理解以及
pytorch
实现
transformer
...
Transformer架构_
attention
is
all you
need
pytorch
实现
attention
i...
赞
踩
article
Attention
is
all
you
need
pytorch
实现
源码
解析01 - 数据预处理...
我们今天开始分析著名的
attention
is
all
you
need
论文的
pytorch
实现的
源码
解析。由于项目很...
赞
踩
article
支持
度
、
置信
度
、
提升
度
、
apriori
算法理解(简易版)_
提升
度
计算公式
...
关于
支持
度
、
置信
度
、
提升
度
以及
apriori
算法的理解(简单版)理解
支持
度
所谓
支持
度
,就是比如说10个用户购买商品,有8...
赞
踩
article
Transformer
中
mask
机制理解_
transformer
中
的
src
,
mask
以及
poss
(...
阅读源代码后我们发现,首先,传入forward的参数
中
,slf_attn_
mask
对应传入的是trg_
mask
,dec_...
赞
踩
相关标签
软件工程
python
pycharm使用教程
buck dcm占空比计算
mysql
java
开发语言
后端
reflect
sql
数据库
信息可视化
学习
ai
人工智能
c语言
单片机
物联网
嵌入式硬件
json
postman
接口测试
自动化测试
rust