当前课程知识点:数据库概论 >  第二章 关系运算 >  2.1 CAP数据库 >  CAP数据库

返回《数据库概论》慕课在线视频课程列表

CAP数据库在线视频

CAP数据库

下一节: 自然关系运算1

返回《数据库概论》慕课在线视频列表

CAP数据库课程教案、知识点、字幕

各位同学 大家好

我是来自云南大学软件学院的张璇

下面由我为大家介绍关系代数

在介绍之前

我们先介绍一个数据库CAP数据库

因为后面的内容

需要使用这个数据库来举例说明

CAP数据库有四个关系表构成

分别是

顾客数据表CUSTOMERS

代理商数据表 AGENTS

产品数据表PRODUCTS

和订单数据表ORDERS

这个数据库的设计是为了

应用于一个批发销售领域

用于存储和追踪顾客

销售代理商

销售商品和销售订单的数据

另外

为了便于介绍

我们事先已在三个数据表中

插入了一些示例数据

下面我们进入正题

首先介绍关系代数是什么

关系代数应用数学的表达方式

描述对关系数据库的查询操作

由于应用了数学描述方式

它的表示可以准确无歧义的

表示对数据库表的操作

所以在书面表示

关系数据库查询操作的时候

我们通常使用关系代数来进行描述

当然也由于关系代数是抽象的数学语言

并不能直接用于完成真实的数据查询操作

我们在课程另外一个部分介绍了SQL语言

它与关系代数是对应的

SQL语言就可以用于完成真实的数据查询操作

关系代数包含两大类运算

一类是集合运算

另外一类是自然关系运算

下面我们首先介绍集合运算

集合运算又可以细分为四项具体的运算

它们分别是

差和乘积运算

这里所用的运算符号

和集合论中的符号是一致的

当然我们也可以用英文单词

分别是UNION表示并运算

INTERSECT表示交运算

MINUS表示差运算

TIMES表示乘积运算

要使用集合运算的并 交和差运算

对参与运算的数据表的结构

是有兼容性要求的

什么是兼容性要求

我们来看看兼容数据表的这个定义

如果数据表R和数据表S

具有相同的列结构

对应的列来自于相同的数据类型域

并且具有相同的含义

那么我们说它们是兼容的

只有兼容的数据表才能使用集合运算

有了兼容表的概念

我们下面来看看并 交和差运算的定义

首先

数据表R和S的并运算结果

仍然是一个数据表

其中的元组记录是由

属于R或属于S的元组记录组成的集合

本质上

相当于把R和S表的元组记录进行了合并

而数据表R和S的交运算结果

则是由属于R又属于S的元组记录构成的集合

最后

R与S的差运算

是由属于R去除同时属于S的元组记录构成的集合

我们来看一个示例

数据表R和S分别都是由ABC三个列构成

并且互相为兼容的两个数据表

如果我们要完成一个查询操作

获得R和S的所有数据

但是去掉重复出现在R和S中的数据

我们运用这三种运算

首先是合并所有R和S的数据

然后去除R和S拥有的相同数据

于是

我们写成这样的关系代数的这种形式

其中

R∪S合并了所有的数据

R∩S把相同的数据拿出来

再做一个差运算

就得到了我们要的结果

由于查询结果也是一个数据表的形式

我们就可以把这个结果保存为数据表T

于是

在前面加上一个T:=

后面是我们的关系代数表达式

下面

我们看看乘积运算

乘积运算相当于把两个数据表链接起来

注意

注意
注意

注意

乘积运算不需要参与运算的数据表相互兼容

那怎么实现乘积运算呢

我们看一个抽象的示例

我们的数据表R分别有ABC三个列

数据表S有BCD三个列

显然它们是不兼容的

当我们做它们的乘积运算的时候

也就是R×S的时候

我们得到的查询结果

包含ABC和BCD六个列

其中每一行记录元组

本质上是数据表R和S的一个连接结果

也就是原本数据表R的第一行记录

和数据表S的所有记录进行连接

构成结果表中的一行记录

同样R的第二行记录

和S中的所有记录也做连接

直到R和S的所有记录都一一对应

返回结果

这样做运算的目的是什么呢

我们在介绍后面的部分自然关系运算后

会给出示例说明这样运算的意义

到目前为止

我们介绍了关系代数

和其中集合运算的概念

以及运算方法

下面我们要介绍关系代数中的另一类运算

自然关系运算

谢谢大家

数据库概论课程列表:

导论

-数据库概述

--Video

-导论--数据库概述

第一章 数据库基础

-1.1 数据库基础

--Video

-第一章 数据库基础--1.1 数据库基础

第二章 关系运算

-2.1 CAP数据库

--CAP数据库

-第二章 关系运算--2.1 CAP数据库

-2.2 自然关系运算1

-- 自然关系运算1

-第二章 关系运算--2.2 自然关系运算1

-2.3 自然关系运算2

--自然关系运算2

-第二章 关系运算--2.3 自然关系运算2

第三章 结构化查询语言SQL

-3.1 SQL概述

-- SQL概述

-3.1 SQL概述--作业

-3.2 数据定义DDL

--数据定义DDL

-3.2 数据定义DDL--作业

-3.3 SQL数据更新DML

--SQL数据更新DML

-3.3 SQL数据更新DML--作业

-3.4 复杂SQL查询操作1

--复杂SQL查询操作1

-第三章 结构化查询语言SQL--3.4 复杂SQL查询操作1

-3.5 复杂SQL查询操作2

--复杂SQL查询操作2

-第三章 结构化查询语言SQL--3.5 复杂SQL查询操作2

第四章 数据库完整性、视图与安全性

-4.1 数据完整性

--4.1 数据完整性

-4.1 数据完整性--作业

-4.2 完整性约束

--完整性约束

-4.2 完整性约束--作业

-4.3 外键约束

--外键约束

-4.3 外键约束--作业

-4.4 触发器

--触发器

-4.4 触发器--作业

-4.5 视图

--视图

-4.5 视图--作业

-4.6 安全性

--安全性

-4.6 安全性--作业

第五章 索引

-5.1 索引

--Video

-5.2 B+树索引

--Video

第六章 规范化理论

-6.1 函数依赖

--Video

-6.2 Armstrong公理

--Video

-6.3 无损分解

--Video

-6.4 范式举例

--Video

-6.5 三种范式

--Video

-6.5 三种范式--作业

第七章 实体关系模型

-7.1-E-R模型概述

--E-R模型概述

-7.2 E-R模型详解

--Video

-7.3 E-R模型的拓展

--Video

-7.4 E-R模型实例分析

--Video

第八章 事务处理

-8.1 事务的ACID性质介绍

--ACID介绍

-8.1 事务的ACID性质介绍--作业

-8.2 事务经历

--事务经历

-8.2 事务经历--作业

-8.3 可串行化调度和前趋图

--可串行化调度和前趋图

-8.3 可串行化调度和前趋图--作业

-8.4 两阶段封锁

--两段锁协议

-8.4 两阶段封锁--作业

-8.5 隔离级别

--隔离级别

-8.5 隔离级别--作业

-8.6 事务恢复

--事务恢复

-8.6 事务恢复--作业

第九章 数据库应用与开发

-9.1 数据库使用介绍

--数据库使用介绍

-9.2 Java访问数据库

--Java访问数据库

-9.2 Java访问数据库--作业

第十章 其他数据库技术概述

-10.1 数据库新技术概述

--Video

CAP数据库笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。