IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 关系型数据库--关系代数 -> 正文阅读

[大数据]关系型数据库--关系代数

目录

1 概述

?2 传统的集合运算

2.1并(union)

2.2差 (expect)

2.3交(intersection)

2.4笛卡尔积(cartesian product)

2.5 例题分析

3.专门的关系运算

3.1选择(selection)

?3.2投影(projection)

?3.3 连接(join)

?3.4 除运算(division)

3.5 例题


1 概述

关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。
任何运算的三大基本要素都是运算对象、运算符、运算结果。关系代数运算对象是关系,运算结果也是关系。关系代数的运算符包括两类:集合运算符和专门的关系运算符。如表1

表1 关系代数运算符
运算符含义
集合运算符
-
×笛卡尔积
专门的关系运算符\sigma选择
\Pi投影

连接
÷

?2 传统的集合运算

传统的集合运算是二目运算,包括并、差、交、笛卡尔积4种运算。

设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,t是元组变量,t\in R表示t是R的一个元组。
可以定义并、差、交、笛卡尔积运算如下:

2.1并(union)

关系R与关系S的并记做

其结果仍为n目关系,由属于R或属于S的元组组成。

2.2差 (expect)


其结果仍为n目关系,由属于R而不属于S的所有元组组成。

2.3交(intersection)

关系R与关系S的交记做

其结果仍为n目关系,由既属于R又属于S的元组组成。

2.4笛卡尔积(cartesian product)

这里的笛卡尔积严格地讲应该是广义的笛卡尔积,因为这里的笛卡尔积的元素是元组。

两个分别为n目和m目的关系R和S的笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的笛卡尔积有k1×k2个元组。记作

图1 传统的集合运算示意图?

2.5 例题分析

问:已知T1时刻某港口内船舶集合为A,T1 + △t时刻该港口内船舶集合为B,请用关系代数求取△t时间内进港和出港船舶的集合。

问题分析及解答:
△t时刻发生了两件事 S1集合的船进港,S2集合的船出港,剩下的船不动,因此对于S1进港船舶,它属于B不属于A,用差运算可以表示B-A;同理,对于S2出港船舶,它属于A不属于B,用差运算可以表示A-B
△t时间内进港船舶B-A
△t时间内出港船舶A-B
进港和出港船舶的总集合(B-A)∪(A-B)

3.专门的关系运算

3.1选择(selection)

选择又称为限制(restriction)它是在关系R中选择满足给定条件的诸元组,记作


其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”
选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。这是从行的角度进行的运算。

设有一个学生-课程库,包括学生关系student、课程关系course和选修关系selectedcourse如图2

?例1:查询课程名为数学的课程信息:
mysql代码表示

SELECT * FROM course
WHERE course_name = '数学';

关系代数表示:

结果为:

?3.2投影(projection)

关系R上的投影是从关系R中选择出若干属性列组成新的属性。记作

其中A为R中的属性列,投影操作是从列的角度进行的运算

例2:查询学生的姓名和所选课程号
mysql代码表示

SELECT student_id, course_id FROM selectedcourse;

关系代数表示:

结果为:

?3.3 连接(join)

连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
记作:

其中,A和B分别为R和S上列数相等且可比的属性组,θ是比较运算符。连接运算符从R和S的笛卡尔积R×S中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系θ的元组。

连接运算中有两组最为重要和常用的连接,即等值连接和自然连接
θ为“=”的连接运算为等值连接。它是从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为

自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉,若R和S中具有相同的属性组B,U是全体集合,自然连接可记作

?3.4 除运算(division)

除操作同时从行和列的角度进行运算,需要用到象集的概念,后续可以补充

3.5 例题

请用关系代数表示这样一个查询:查询选修了课程号为10001和10003课程的学生学号。

?mysql表示:

SELECT student_id FROM selectedcourse
WHERE course_id = 10001 OR course_id = 10003;

关系代数表示:

结果:

本文的主要理论来自于教材《数据库系统概论》第五版 王珊 萨师煊著?P47-P56

本文的SQL查询结果截图自本地数据库,操作界面Navicat

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-19 18:25:59  更:2021-12-19 18:26:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:08:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码