MySQL入门,第六部分,关系代数
关系代数是一种集合操作为基础过程化查询语言,特点:运算对象是关系,运算结果亦为关系
一、关系代数的特点
运算对象:关系
运算结果:关系
运算符:四类
- 集合运算符
- 专门的关系运算符
- 算术比较符
- 逻辑运算符
二、关系代数运算符
| 运算符类型 | 运算符 | 含义 |
|---|---|---|
| 集合运算符 |
∪ |
并 |
| 集合运算符 | - | 差 |
| 集合运算符 | ∩ | 交 |
| 集合运算符 | × |
广义笛卡尔积 |
| 比较运算符 |
> |
大于 |
| 比较运算符 |
≥ |
大于等于 |
| 比较运算符 | < | 小于 |
| 比较运算符 |
≤ |
小于等于 |
| 比较运算符 | = | 等于 |
| 比较运算符 | ≠ | 不等于 |
| 专门的关系运算符 |
σ |
选择 |
| 专门的关系运算符 | π | 投影 |
| 专门的关系运算符 | ⋈ | 连接 |
| 专门的关系运算符 | ÷ | 除 |
| 逻辑运算符 |
¬ |
非 |
| 逻辑运算符 | ∧ | 与 |
| 逻辑运算符 | ∨ | 或 |
三、运算规则
1.集合运算规则
将关系R, S看作是元组的集合,进行交、并及差集合运算,必须具备下列条件:
- R和S的模式必须相同
- R和S的属性顺序也相同
| 表达式 | 操作类型 | 含义 |
|---|---|---|
| R ∪ S | 并 | R、S两者中元组的集合,一个元素在并集中只出现一次 |
| R ∩ S | 交 | 同时存在于R和S中的元组的集合 |
| R – S | 差 | 在R中存在,而在S中不存在的元素的集合 |
| R × S | 笛卡尔积 | R(n目p元组),S(m目q元组);运算得到的新关系中有(n+m)个目(p×q)个元组 |
解析:
广义笛卡尔积运算:

2.专门的关系运算符
| 表达式 | 操作类型 | 含义 | 备注 | 举例 |
|---|---|---|---|---|
| σ c (R) | 选择 | 在关系R上选择满足条件C的元组,构成一个新的关系。新关系是R的子集,模式与R相同 | 条件 c 是一个逻辑表达式,表达式中可以使用比较运算符和逻辑运算符 | σ name = '小明' (Student) |
| π A1,A2,…,An (R) | 投影 | 从关系R产生一个只有R的某些列的新的关系 | 新的关系中含有旧关系的A1,A2,…,An 列 | π name,age (Student) |
| R⋈ AθB S | θ连接 | 从两个关系R,S的广义笛卡尔积中选择属性间满足一定条件的元组;记作S⋈R(AθB) |
A为包含R中的属性的表达式,B为包含S中的属性的表达式,θ通常为关系比较符; 等效于σ AθB (R×S) |
Student ⋈ sGPA≥cGPA Company |
| R⋈ A=B S | 等值连接 | 当比较运算符θ 为 = 时的θ连接 |
A为包含R中的属性的表达式,B为包含S中的属性的表达式; 等效于σ A=B (R×S) |
Student ⋈ sGPA=cGPA Company |
| R⋈S | 自然连接 | 一种特殊的等值连接。两个关系中进行比较的分量必须是相同的属性组。在结果中把重复的属性列去掉 | Student ⋈ GPA | |
| R÷S | 除 |
详解见本文最后 |
详解见本文最后 | 详解见本文最后 |
解析:
自然连接:

除法运算:
=======================================================================================================
为什么把这个分支知识点放到最后单独来说呢?因为它的概念确实是比较抽象的,单独靠一个表格确实无法深入的理解,下面我们一步一步来了解什么是关系代数中的除运算
(1)象集
关系R(A,Z)
A和Z为关系R的属性,a是属性A中的分量值
a在R中的象集:R中在A上值为a元组在Z属性上对应分量的集合
例如:

(2)除
首先我们来看一下官方定义:
除运算是同时从关系的水平方向和垂直方向进行运算。给定关系R(X,Y)和S(Y,Z),X、Y、Z为属性组。R÷S应当满足元组在X上的分量值x的象集Y,包含关系S在属性组Y上投影的集合
分析:
关系 R (A,Y)、S (Y,Z)
P(A) = R÷S (经过除法运算得到一个新的关系P(A))
关系R在A上分量值a的象集 称作 seta
关系S在Y属性组上投影的集合 称作setY
若seta包含了 setY, 则 a 就是关系P中的元组分量
例如:
关系R和关系S拥有共同的属性Cno、R÷S得到的新关系中存在着“关系R包含但关系S不包含“”的属性,即Sno属性

=======================================================================================================
MySQL入门,第六部分,关系代数的更多相关文章
- 21分钟 MySQL 入门教程(转载!!!)
21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...
- MySQL入门笔记
MySQL入门笔记 版本选择: 5.x.20 以上版本比较稳定 一.MySQL的三种安装方式: 安装MySQL的方式常见的有三种: · rpm包形式 · 通用二进制 ...
- MySQL入门转载
21分钟 MySQL 入门教程 http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html 目录 一.MySQL的相关概念介绍 二.Wi ...
- MySQL入门笔记(二)
MySQL的数据类型.数据库操作.针对单表的操作以及简单的记录操作可参考:MySQL入门笔记(一) 五.子查询 子查询可简单地理解为查询中的查询,即子查询外部必然还有一层查询,并且这里的查询并非仅 ...
- MySQL入门介绍(mysql-8.0.13)
MySQL入门介绍(mysql-8.0.13单机部署) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL数据库介绍 1>.MySQL是一种开放源代码的关系型数据库 ...
- mysql入门与进阶
MySQL入门与进阶 需求:对一张表中的数据进行增删改查操作(CURD) C:create 创建 U:update 修改 R:read 读|检索 查询 D:delete 删除涉及技术:数据库 1.数据 ...
- 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...
- Mysql学习总结(12)——21分钟Mysql入门教程
21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...
- MySQL入门——在Linux下安装和卸载MariaDB
MySQL入门——在Linux下安装和卸载MariaDB 摘要:本文主要学习了如何在Linux系统中安装和卸载MariaDB数据库. 查看有没有安装过MariaDB 使用命令查看有没有安装过: [ro ...
- 最新MySQL入门篇
一.SQL简介 SQL:结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系 ...
随机推荐
- VWware Workstation 安装CentOS系统
VWware Workstation 安装CentOS系统 下载CentOS系统镜像: 官方地址:https://www.centos.org/download/mirrors/ 在此可选择华为云服务 ...
- 机器学习——详解经典聚类算法Kmeans
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第12篇文章,我们一起来看下Kmeans聚类算法. 在上一篇文章当中我们讨论了KNN算法,KNN算法非常形象,通过距离公 ...
- 2019-2020-2 20174313张博 《网络对抗技术》Exp1 PC平台逆向破解
写在前面 ·实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串.该程序同时包含另一个代码片段——g ...
- 【Java面试题】List如何一边遍历,一边删除?
这是最近面试时被问到的1道面试题,本篇博客对此问题进行总结分享. 1. 新手常犯的错误 可能很多新手(包括当年的我,哈哈)第一时间想到的写法是下面这样的: public static void mai ...
- 在Servlet端获取html页面选中的checkbox值,request获取页面checkbox(复选框)值
html端代码: 选项框: <input type="checkbox" name="crowd" value="选项一">选项 ...
- Python专题——详解enumerate和zip
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第7篇文章,我们继续介绍迭代相关. enumerate 首先介绍的是enumerate函数. 在我们日常编程的过程当 ...
- Linux 部署Tomcat图文注解 一学就会
导读 安装tomcat前首先要安装对应的jdk并配置Java环境. 安装jdk,请参考:点我直达 安装Tomcat 下载Tomcat包 官网地址:点我直达 Tomcat与jdk兼容关系 注:Tomca ...
- Github代码高级搜索小技巧
Github搜索之代码搜索 可以使用下列搜索限定符的任意组合进行代码搜索 提示:通过将一连串的搜索语法添加到搜索限定符来进一步提高搜索结果的精度. ·代码搜索注意事项 由于搜索代码的复杂性,有一些搜索 ...
- python-集合,列表和元组
a = {11,22,33} b = [11,22,33] c = (11,22,33,22) 集合:type(a) -->>set#集合内元素不可重复,花括号括起来的还有 -->& ...
- vue命令式组件和插件编写
一直在写各种业务,好多基本用法都忘记了,回顾一下: 一.vue各种UI库里的命令式组件比如element-ui里Notification组件,可以这样调用 this.$notify({ title: ...