搜索
查看
编辑修改
首页
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
docker pull 拉取失败更换源_docker pull 失败
2
OpenCV学习笔记_openc中size resimgsiz = size(frame.cols*scale, fram
3
https(SSL)证书申请和黑群晖使用-跳坑指南_黑群晖 ssl
4
如何在jupyterlab里写mermaid语法支持的graph_jupyter mermaid
5
如何利用Python爬虫,获取招聘网站岗位数据_网络爬虫爬取招聘数据
6
【数据结构】链表从实现到应用,保姆级攻略
7
FLUX.1最强AI绘画开源新模型,comfyUI已支持,效果惊艳_comfyui flux
8
十、OpenAI之视觉_openai 传递图片
9
.NET Core 性能优化方案
10
斤斤计较之Python:运算符_cmatch.sqrt
当前位置:
article
> 正文
数据库关系代数表达式学习_数据库关系代数 选择
作者:代码探险家 | 2024-07-31 11:59:49
赞
踩
数据库关系代数 选择
关系代数是关系数据库系统查询语言的理论基础。很有必要学习一下,有些是用代数表达式很方便的东西,用
SQL写出来还是挺麻烦的,并不是想象当中那么直接。
一、关系代数的9种操作:
关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。
五个基本操作:
并(∪)、差(-)、笛卡尔积(×)、投影(σ)、选择(π)
四个组合操作:
交(∩)、联接(等值联接)、自然联接(R
S)、除法(÷)
注2:等值连接表示先做笛卡尔积(×)之后,对相应列进行选择或等值关联后的结果(仅筛选行、不筛选列)
注2:自然连接表示两个关系中若有相同名称的属性,则自动作为关联条件,且仅列出一列
二、关系代数表达式:
由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。
三、举例说明:
设教学数据库中有3个关系:
学生关系S(SNO
,
SNAME,AGE,SEX)
学习关系SC(SNO,CNO,GRADE)
课程关系C(CNO,CNAME,TEACHER)
(1) 检索学习课程号为C2的学生学号与成绩
------------------------------------
SELECT SNO,GRADE
FROM SC
WHERE CNO='C2'
------------------------------------
π
SNO
,
GRADE
(
σ
CNO='C2'
(SC))
************************************
(2) 检索学习课程号为C2的学生学号与姓名
------------------------------------
SELECT SC.SNO,S.SNAME
FROM SC,S
WHERE SC.SNO=S.SNO
AND SC.CNO='C2'
------------------------------------
π
SNO,SNAME
(
σ
CNO='C2'
(S
SC))
此查询涉及S和SC,先进行自然连接,然后再执行选择投影操作。
----
π
SNO,SNAME
(S)
(
π
SNO
(
σ
CNO='C2'
(SC)))
自然连接的右分量为"学了C2课的学生学号的集合"。
此表达式比前一个表达式优化,执行起来要省时间、省空间。
************************************
(3) 检索选修课程名为MATHS的学生学号与姓名
------------------------------------
SELECT SC.SNO,S.SNAME
FROM SC,S,C
WHERE SC.SNO=S.SNO
AND SC.CNO=C.CNO
AND C.CNAME='MATHS'
------------------------------------
π
SNO
,
SANME
(
σ
CNAME='MATHS'
(S
SC
C))
************************************
(4) 检索选修课程号为C2或C4的学生学号
------------------------------------
SELECT SNO
FROM SC
WHERE CNO='C2'
OR CNO='C4'
------------------------------------
π
SNO
(
σ
CNO='C2'∨CNO='C4'
(SC))
************************************
(5) 检索至少选修课程号为C2或C4的学生学号
------------------------------------
SELECT SA.SNO
FROM SC AS SA,SC AS SB
WHERE SA.SNO=SB.SNO
AND SA.CNO='C2'
AND SB.CNO='C4'
------------------------------------
π
1
(
σ
1=4∧2='C2'∧5='C4'
(SC×SC))
************************************
(6) 检索不学C2课的学生姓名与年龄
------------------------------------
SELECT SNAME,AGE
FROM S
MINUS
SELECT S.SNAME,S.AGE
FROM SC,S
WHERE SC.SNO=S.SNO
AND SC.CNO='C2'
(Oracle)
------------------------------------
π
SNAME
,
AGE
(S)-
π
SNAME
,
AGE
(
σ
CNO='C2'
(S
SC))
************************************
(7) 检索学习全部课程的学生姓名
------------------------------------
这个定义用
SQL表示比较麻烦,略过
------------------------------------
π
SNO
,
CNO
(SC)÷
π
CNO
(C)
先用除法取出选取所有课程的
SNO集(除法可以理解为一个Filter)
π
SNAME
(S
(
π
SNO,CNO
(SC)÷
π
CNO
(C)))
再关联
S表取出SNAME
************************************
(8) 检索所学课程包含S3所学课程的学生学号
------------------------------------
这个定义用
SQL表示比较麻烦,略过
------------------------------------
π
SNO,CNO
(SC)÷
π
CNO
(
σ
SNO='S3'
(SC))
同样运用了除法的特性
************************************
(9) 将新课程元组
(
'C10','PHYSICS','YU'
)
插入到关系C中
------------------------------------
INSERT INTO C VALUES('C10','PHYSICS','YU')
------------------------------------
(C
∪
('C10','PHYSICS','YU'))
记住该符号的用法
************************************
(10) 将学号S4选修课程号为C4的成绩改为85分
------------------------------------
UPDATE SC SET GRADE=85
WHERE SNO='S4'
AND CNO='C4'
------------------------------------
(SC
-
('S4','C4',
?
)
∪
('S4','C4',85))
先用'
-
'实现DELETE功能,再用'∪'实现INSERT功能
注意使用?来表示检索时忽略该字段值
************************************
四、关系代数表达式的优化:
目的
:为了系统在执行时既省时间又能提高效率。
基本策略
:先做选择,运用投影去除多余属性等等。
优化算法
:语法树
(
尽量提前做选择操作;在每个操作后,应做个投影操作,去掉不用的属性值
)
例如:
π
S
NO
,SNAME
(
σ
GRADE>60
(S
SC))
进行
优化后转换为:
π
S
NO
,SNAME
(
π
S
NO
,SNAME
(S)
π
S
NO
(
σ
GRADE>60
(SC)))
--即提前做选择操作;在每个操作后,应做个投影操作,去掉不用的属性值
又如:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
π
CNAME,TEACHER
(
σ
SEX='女'
(S
SC
C))
进行
优化后转换为:
π
CNAME
,
TEACHER
(C
π
C#
(
π
S#,C#
(SC)
π
S#
(
σ
SEX='女'
(S))))
优化前和优化后的语法树如下所示:
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/代码探险家/article/detail/908739?site
推荐阅读
article
Apriori
算法
(原理
步骤
、
Python
实现、
apyori
库实现)_
apriori
算法
步骤
...
Support(A∩B)=Support_count(A∩B)sum=A,B同时发生的事物个数所有事物个数Confide...
赞
踩
article
自然语言
处理
基础知识
入门(六)
GPT
模型
详解_类
gpt
模型
...
在之前的章节中,深入探究了预训练ELMo
模型
的架构与实现原理。通过采用双向LSTM架构在大规模文本数据上进行预训练,EL...
赞
踩
article
参数高效微调
PEFT
(三)快速入门
LoRA
、Ada
LoRA
_使用
peft
进行
adalora
...
参数高效微调
PEFT
(三)快速入门
LoRA
、Ada
LoRA
_使用
peft
进行
adalora
使用
peft
进行
adalora
...
赞
踩
article
git
error
解决方案_
git
error
desktop
-
48flbtc
...
今天使用
git
clone项目的源码时突然出现remote out of memery,解决办法:
git
config ...
赞
踩
article
机器学习推荐
算法
之
关联
规则
(Apriori)——
支持
度
;
置信
度
;提升
度
_
关联
规则
支持
度
...
目录
关联
规则
支持
度
目录 ...
赞
踩
article
Vue
~~_
error
:
ref
'$
media
:
icon
' don't be defined. e...
Vue
_
error
:
ref
'$
media
:
icon
' don't be defined.
error
: '
icon
'...
赞
踩
article
Python
面试整理-
Web
开发
...
Tornado 是一个
Python
Web
框架和异步网络库,通过使用非阻塞网络I/O,它可以扩展到数万个开放的连接,适用...
赞
踩
article
Git
使用
教程
(
很详细
)
...
在项目开发过程中,项目没开发到一个节点就会对当前项目进行备份,这个备份就是项目的一个版本;当我们继续开发一个阶段后,再次...
赞
踩
article
阿里
通义
千问
:本地部署
Qwen1.5
开源
大
模型
...
通义
千问
为阿里云研发的大语言系列
模型
。
千问
模型
基于Transformer架构,在超大规模的预训练数据上进行训练得到。预训...
赞
踩
article
netty
构建
udp
服务器
以及
发送
报文到
客户端
客户端
详细案例
_
netty
udp
...
以上代码中用户判断是window还是linux环境,linux环境默认采用Epoll相关通道,所以显式设置通道。要使 通...
赞
踩
article
【读论文】
Rethinking
the
Role
of
Demonstrations
:
What
M...
pdf:ppt:_
the
channel
method
"(通道方法)是用于评估和测试大型
语言
模型
(lms)在
上下文
学习
(...
赞
踩
article
Swin
Transformer
: Hierarchical
Vision
Transformer
...
ViT将transformer从NLP领域应用到了视觉领域,但是它仅做了分类工作,
Swin
transformer的提出...
赞
踩
article
R
语言
使用
ap
r
io
r
i
算法
进行
关联
规则
挖掘实战:
关联
规则
概念、频繁项集、支持度(
suppo
r
t
)、...
R
语言
使用
ap
r
io
r
i
算法
进行
关联
规则
挖掘实战:
关联
规则
概念、频繁项集、支持度(
suppo
r
t
)、置信度(confid...
赞
踩
article
解决问题
:修改
jupyter
notebook
默认
路径
成自定义
路径
_
jupyter
运行后
c
盘满了...
我下载完
jupyter
notebook
后文件
路径
是C:\users\administrator,但C盘快满了,我想修改...
赞
踩
article
最优
模型
选择
的
准则
:
AIC
、
BIC
准则
_
bic
准则
的
定义...
选择最优
模型
的
指导思想是从两个方面去考察:一个是似然函数最大化,另一个是
模型
中
的
未知参数个数最小化。似然函数值越大说明模...
赞
踩
article
Android
的
设计
模式
-
简单
工厂
模式
_
android
把
switch
语句修改为
简单
工厂
...
前言
Android
的
设计
模式
系列文章介绍,欢迎关注,持续更新中:1.定义定义一个用于创建对象的接口,让子类决定实例化哪个...
赞
踩
article
5
年
经验之谈
:月薪3000到30000
,
测试
工程师
的变“行”记_游戏
测试
工程师
5
年
...
自我介绍下
,
我是一名转IT
测试
人
,
我的专业是化学
,
去化工厂实习才发现这专业的坑人之处
,
化学试剂害人不浅
,
有毒
,
易燃易爆
,
...
赞
踩
article
maven
多
module
项目
的
引用
问题
_
mavne
多模板相互
引用
问题
...
问题
描述:当建一个多
module
的
maven
项目
时,我们想要的效果是: 1. 当子
项目
引用
父
项目
时,我们可以根据需要
引用
...
赞
踩
article
Linux
系统配置
核查-【
等
保测评】
网络安全
等
级保护测评 S3A3 计算环境
操作系统
(
Linux
)_...
3、查看audit.rules中是否记录了修改日期和时间信息的事件(time-change)、修改用户/组信息事件(id...
赞
踩
article
VS
code
上创建
Vue
项目详细化教程1-配置
VS
code
与
Vue
_vs
code
vue
...
VS
code
上创建
Vue
项目详细化教程1-配置
VS
code
与
Vue
_vs
code
vue
vs
code
vue
...
赞
踩
相关标签
python
算法
数据挖掘
Apriori
自然语言处理
gpt
人工智能
pytorch
机器学习
深度学习
transformer
神经网络
git
推荐算法
关联规则
Apriari算法
支持度
置信度
vue.js
面试
前端
web
通义千问
大语言模型
Qwen