数据库系统之:关系代数详解-超详细
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
数据库系统之:关系代数
- 前言
- 一、关系代数是什么?
- 二、关系代数
- 1.关系代数--并、交、差
- 2.关系代数--笛卡尔积、投影、选择
- 4.关系代数--选择
- 扩展:自然连接和等值连接的联系和区别
- 等值连接
- 自然连接
- 总结
前言
关系代数是属于软件设计师考试中第三单元数据库系统中的一个高频考点,常考的考试场景有:
1、给定代数式,求取计算结果或其结果的特性,找到等价表达式。
2、常考的关系代数是笛卡尔积、选择、投影组合与自然连接的等价表示。
3、SQL语句 SELECT结合考査。
提示:以下是本篇文章正文内容,下面案例可供参考
一、关系代数是什么?
关系代数是一种抽象的查询语言,用对关系的运算来表达查询,关系代数是关系数据库系统查询语言的理论基础。
二、关系代数
1.关系代数–并、交、差
关系代数运算类似于集合运算,在此并,交,差比较简单,我们直接上图:
由上图,可对并,交,差进行分析总结得:
1、并(结果为二者元组之和去除重复行)
2、交(结果为二者重复行)
3、差(前者去除二者重复行)
2.关系代数–笛卡尔积、投影、选择
先上点对笛卡尔积、投影、选择的理论理解:
笛卡尔积 ,从数学角度理解,就是将集合A和集合B中所有有序对元素集合。在数据库系统中,表示得是对两个关系R和S进行操作,产生的关系中元组个数为两个关系中元组个数之积。
投影 ,关系R上的投影是从R中选择出若干属性列组成新的关系。
选择 ,选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组。
有点懵,没关系,我们可以忽略上述理论术语,来,我们看图:
由上图,可对笛卡尔积、投影、选择分析总结得:
1、笛卡尔积:结果列数为二者属性列数之和,行数为二者元素数乘积。
2、投影:对属性列的选择列出,上述投影图可用SQL语句select Sn0 , Sname from 表,就是把需要的字段显示出来即可。
3、选择:选择是根据某些条件对关系做水平切割,对元组行的选择列出如上述中Sn0-Soooo3(S1),是指从S1中选择Sno字段为Soooo3的数据。
4.关系代数–选择
自然连接:结果列数为二者属性列数之和減去重复列,行数为二者冋名属性列其值相冋的结果元组。笛卡尔积、选择、投影的组合表示可以与自然连接等价.
普通连接的条件会写出,没有写出则表示为自然连接。计算如图所示:
扩展:自然连接和等值连接的联系和区别
1、自然连接一定是等值连接,但等值连接不一定是自然连接。
2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。
3、等值连接不把重复的属性除去;而自然连接要把重复的属性除去。
等值连接
Θ相当与运算符,可以认为笛卡儿积是无条件连接,其他的是有条件连接。等值连接的条件就相当于θ=“=”
Θ连接逻辑上是table之间先做笛卡儿积,再做对应选择操作。
如下:R⋈S等值连接为:
自然连接
自然连接符号为(⋈),为特殊的等值连接,要求两个关系中进行比较的分量必须相同属性组,将重复属性(字段)去掉
如下:R⋈S自然连接为:
总结
这里对文章进行总结,其他都简单,主要是对连接可能会模糊,在这里提示,牢记下面三条区别,看等值连接和自然连接图运算例子即可。
1、自然连接一定是等值连接,但等值连接不一定是自然连接。
2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。
3、等值连接不把重复的属性除去;而自然连接要把重复的属性除去。
数据库系统之:关系代数详解-超详细相关推荐
- Java 泛型详解(超详细的java泛型方法解析)
Java 泛型详解(超详细的java泛型方法解析) 1. 什么是泛型 泛型:是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型.也就是说在泛型使用过程中,操作的数据类型被指定为 ...
- mysql 联表比对,MySQL联表查询详解/超详细mysql left join,right join,inner join用法分析比较...
超详细mysql left join,right join,inner join用法分析 下面是例子分析 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a200 ...
- log4j 配置详解(超详细)
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- 【bind()函数】JavaScript手写bind()及详解-超详细~~~
这两天学习了手写call.apply.bind,手写bind思考了很久才实现了MDN的示例的结果,所以记录下来~ 因为是第一篇文章,所以可能存在一些错误,希望各位大佬批评指正,不吝赐教. 也欢迎不懂的 ...
- @Autowired注解详解——超详细易懂
@Autowired详解 要搞明白@Autowired注解就是要了解它是什么?有什么作用?怎么用?为什么? 首先了解一下IOC操作Bean管理,bean管理是指(1)spring创建对象 (2)spr ...
- 斜率优化详解(超详细, 有图有代码有注释)
文章目录 斜率优化引入 从例题开始 斜率优化Part 1: 推为斜率式 斜率优化Part 2: 合法点集的斜率单调性 Part 3: 找到最优决策点 Part 4: 斜率优化大流程 Part 5: 斜 ...
- web服务器常见配置搭建详解(超详细)
前言: 本博客借鉴一些写的比较好的博客,进行归纳总结,整理了一篇比较详细的服务器常见配置搭建教程 一来是和大家一起分享,二来也是作为自己的学习笔记记录一下. 温馨提示: 篇幅较长,请分阶段选择性查看. ...
- 计算机网络 - IPv4 常考知识点详解(超详细!)
目录 一.IPv4分组 1.IPv4分组的格式 2.IP数据报分片 3.网络层转发分组的流程 二.IPv4地址与NAT 1.IPv4地址 2.NAT 三.子网划分与子网掩码.CIDR 1.子网划分 2 ...
- Linux目录功能及文件类型,linux目录作用详解(超详细,树状排版)
自己在网上找了好久,没找到,干脆自己做一个.给大家分享下,希望能顺便指出我的错误.请复制到记事本,然后取消自动换行.看起来就会很清晰了. /根目录 │ ├boot/启动文件.Linux的内核及引导系统 ...
最新文章
- 关于jsp基础知识题目(一)
- 二、python小功能记录——监听鼠标事件
- ios 圆形旋转菜单_iOS实现滑动弧形菜单的思路与方法
- Vim 实用技术,第 2 部分: 常用插件
- 关于编译错误 fatal error C1083: Cannot open precompiled header file
- Active Record 数据验证
- matplotlib——散点图
- 嵌入式实时音乐语音识别系统的实现
- 关于NGINX变量的一些测试结果
- ant 日期组件中文_Vue3开源组件库,今天“它们”来了
- mid制作乐谱_【图片】分享一个自己编写的打谱软件,支持生成简谱、乐谱演奏、MID输出_简谱吧_百度贴吧...
- Mac电脑下的单片机开发环境配置心得
- 22考研各科标准答题卡(附高清PDF版)
- 企业入职测试题目及答案_[企业入职性格测试题以与答案信息]新员工入职性格测试题...
- 路飞学城python开发ftp_路飞学城-Python开发集训-第一章
- 线程的学习,和线程的相关概念及多线程的学习指引
- 【.NET IoT】把达特甲醛传感器DART WZ-S接到树莓派RaspberryPi 3 b+上
- wps临时文件不自动删除_windows 里面TEP文件夹里面的临时文件有的不能删除怎么办?...
- [luogu P5960] 【模板】差分约束算法
- 36岁,被单位解聘,我干起了深夜外卖