博客
关于我
【数据库系统概念】第6章 形式化关系查询语言 知识总结
阅读量:395 次
发布时间:2019-03-05

本文共 1519 字,大约阅读时间需要 5 分钟。

《系统概念》第6章知识点总结

形式化关系查询语言

关系代数

关系代数基本运算:选择、投影、并、集合差、笛卡尔积、更名

 

基本运算

选择运算

选出满足给定谓词的元组,用sigma(σ)来表示,将谓词写作σ的下表

例如:属于物理系的元组可以这样写

 

通常,我们允许在选择谓词中进行比较,使用的是=、≠、<、≤、>、≥

另外,我们可以用连词将多个谓词合并为一个较大的谓词

例如:

投影运算

投影运算是一元运算,它返回作为参数的关系,但把某些属性排除在外。

用大写希腊字母pi(π就大概这个样子写大点。。。我打不出来2333

例如:

 

关系运算的组合

例如:找出物理系的所有教师的名字

 

并运算

就是将两个集合并起来

例如:找出开设在2009年秋季学期或者2010年春季学期或者这两者皆开的所有课程的集合

 

另一方面,设rs是数据库关系或者作为关系代数表达式结果的临时关系。要使r U s有意义,需满足以下两个条件:

1)关系rs必须是同元的,即它们的属性数目必须相同

2)对所有的ir的第i个属性的域必须和s的第i个属性的域相同

集合差运算

- 表示集合差运算,可以找出在一个关系中而不在另一个关系中的那些元组。

例如:找出所有开设在2009年秋季学期但是在2010年春季学期不开的课程

 

笛卡尔积运算

X表示笛卡尔积,可以将任意两个关系的信息组合在一起。

更名运算

关系代数表达式的结果没有可供我们引用的名字,我们可以通过小写希腊字母rho(ρ)表示的更名运算来完成这一任务。

返回表达式E的结果,并把名字x赋给了它

 

返回表达式E的结果,并赋给它名字x,同时将各属性更名为A1A2... An

 

 

附加的关系代数运算

集合交运算

例如:在2009年秋季和2010年春季都开设的课程

集合交运算与集合差运算的关系:

 

自然连接运算

用连接符号来表示

自然连接运算首先形成它的两个参数的笛卡尔积,然后基于两个关系模式中都出现的属性上的相等性进行选择,最后还要去除重复属性。

例如:找出所有教师的姓名,连同他们教的所有课程的course_id

 

自然连接是可结合的

theta连接是自然连接的扩展,它使得我们可以把一个选择运算和一个笛卡尔积运算合并为单独的一个运算,即自然连接是选出笛卡尔积中相同的属性,而theta连接是选出笛卡尔积中满足该选择运算的属性。

 

 

赋值运算

 

R x S的结果赋给temp1

 

外连接运算

外连接是连接运算的扩展,可以处理确实的信息。有左外连接、右外连接和全外连接

左外连接():取出左侧关系中所有与右侧关系的任一元组都不匹配的元组,用空值填充所有来自右侧关系的属性,再把产生的元组加到自然连接的结果中。

右外连接():与左外连接相对称

全外连接():既做左外连接又做右外连接,既填充左侧关系中与右侧关系的任一元组都不匹配的元组,又填充右侧关系中与左侧关系的任一元组都不匹配的元组,并把结果都加到连接的结果中。

 

扩展的关系代数运算

广义投影

广义投影允许在投影列表中使用算术运算和字符串函数等来对投影进行扩展。

例如:

 

聚集

聚集运算可以用来对值的集合使用聚集函数,例如计算最小值或者求平均值

聚集函数:输入值的一个汇集,将单一值作为结果返回。比如输入几个数的集合,返回他们的和作为结果

 

distinct添加在函数名后,可以去除重复

例如:

 

 

元组关系演算

元组关系演算表达式具有如下形式:

其中P是一个公式,公示中可以出现多个元组变量。如果元组不被“存在”或“任意”修饰,则称为自由变量。

 

 

域关系演算

域关系演算是从属性域中取值的域变量,而不是整个元组的值。

注:图片均来自《数据库系统概念》第6版——机械工业出版社

你可能感兴趣的文章
nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
nginx配置全解
查看>>
Nginx配置参数中文说明
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Nginx配置负载均衡到后台网关集群
查看>>
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>