数据库系统概论 ---- 第二章 -- 关系数据库(2.4 关系代数)(下)

简介: 数据库系统概论 ---- 第二章 -- 关系数据库(2.4 关系代数)(下)

选择运算实际上是从关系R中选取使逻辑表达式F为真的元组,这是从行的角度进行的运算

例题1:查询信息系(IS系)的全体学生

例题2:查询年龄小于20岁的学生

2. 投影(基本运算)

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

其中A为R中的属性列

投影操作是从列的角度进行的运算。

例题1:查询学生的姓名和所在系,即求 Student 关系上学生姓名和所在系两个属性上的投影。

如果选择多个属性,多个属性之间使用逗号进行分隔

投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列之后,就可能出现重复行,应该取消这些完全相同的行。

例题2:查询学生关系Student中都有哪些系,即查询关系 Student 上所在系属性上的投影。

结果如图所示。Student关系原来有4个元组,而投影结果取消了重复的CS元组,因此只有三个元组。

3. 连接(非基本运算)

连接也称为 θ 连接。

连接从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作:

其中,A和B分别为R和S上列数相等且可比的属性组,θ 是比较运算符。

连接运算从R和S的笛卡儿积 R X S 中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系 θ 的元组。

连接运算中有两种最为重要也最为常用的连接,

  1. 等值连接
  2. 自然连接

θ 为“=” 的连接运算称为 等值连接 。它是从关系R与S的广义笛卡儿积中选取A、B属性值相等的那些元组,即等值连接为:

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

一般的连接操作从行的角度进行运算,但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。

例题:

在进行连接时,被舍弃的元组(即没有在结果中的元组)称为悬浮元组

如果把悬浮元组也保存在结果关系中,而在其他属性上填空值(NULL),那么这种连接就叫做外连接,记作

注意符号两边有小突出

如果只保留左边关系R中的悬浮元组就叫做左外连接,记作

注意只有左边有小突出

如果只保留右边关系S中的悬浮元组就叫做右外连接,记作

注意只有右边有小突出

在图2.8中,图(a)是图2.7中的关系R和关系S的外连接,图(b)是左外连接,图©是右外连接。

图2.7中的关系R和关系S

图2.8

4. 除运算(非基本运算)

设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中

下面用象集来定义除法:

给定关系R(X,Y)和S(Y,Z),其中X、Y、Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集

R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:

元组在X上分量值 x 的象集Y 包含 S在Y上投影的集合。记作

其中Yx为 x 在R中的象集,x = tr[X]。

除操作是同时从行和列角度进行运算

例题1:

例题2:

使用除运算的场景:“查询…全部 / 所有的…”的问题。如,“查询选修了所有课程的学生的学号”。

注意,要与“查询全部 / 所有的…”进行区分,如,“查询所有信息系的学生”。

2.4.3 小结

本节介绍了8种关系代数运算,其中并、差、笛卡儿积、选择和投影这5种运算为基本的运算。其他三种运算,即交、连接和除,均可以用这5种基本运算来表达。

关系代数中,这些运算经有限次复合后形成的表达式称为关系代数表达式

相关实践学习
使用DAS实现数据库SQL优化
本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。
相关文章
|
9月前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
197 10
|
9月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
163 0
|
9月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
208 0
|
7天前
|
存储 SQL 数据库
关系数据库-数据库事务处理与ACID原则
本文详细介绍了关系数据库中的事务处理和ACID原则。通过事务处理,可以确保数据库操作的原子性、一致性、隔离性和持久性,从而提高数据的可靠性和一致性。在实际应用中,可以通过事务控制语句和适当的隔离级别,确保复杂操作的正确执行。希望本文能帮助您更好地理解和应用数据库事务处理,提高数据库系统的可靠性和性能。
43 18
|
9月前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
453 6
|
9月前
|
SQL Oracle 关系型数据库
数据库SQL语言实战(四)(数据库系统概念第三章练习题)
本文的SQL语言适用的是Oracle数据库与mySQL可能存在略微不同
数据库SQL语言实战(四)(数据库系统概念第三章练习题)
|
9月前
|
存储 关系型数据库 MySQL
数据库期末考试基础——数据库系统概述
数据库期末考试基础——数据库系统概述
62 2
|
9月前
|
SQL Oracle 关系型数据库
数据库SQL语言实战(五)(数据库系统概念第三章练习题)
本文的SQL语言适用的是Oracle数据库与mySQL可能存在略微不同
|
9月前
|
存储 SQL NoSQL
关系数据库与非关系数据库:选择适当的数据存储方案
关系数据库与非关系数据库:选择适当的数据存储方案
|
9月前
|
SQL 存储 算法
【数据库SQL server】数据库系统概述与DBS结构
【数据库SQL server】数据库系统概述与DBS结构
214 0
【数据库SQL server】数据库系统概述与DBS结构

热门文章

最新文章