数据库系统概论 ---- 第二章 -- 关系数据库(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种基本运算来表达。

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

相关实践学习
MySQL数据库快速部署实践
本场景主要介绍如何在一台配置了CentOS 7.7版本的ECS实例(云服务器)上安装mysql,执行mysql的常用操作,学习基本的SQL语句。
相关文章
|
7月前
|
SQL 关系型数据库 MySQL
阿里云RDS云数据库全解析:产品功能、收费标准与活动参考
与云服务器ECS一样,关系型数据库RDS也是很多用户上云必买的热门云产品之一,阿里云的云数据库RDS主要包含RDS MySQL、RDS SQL Server、RDS PostgreSQL、RDS MariaDB等几个关系型数据库,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,帮助您解决数据库运维的烦恼。本文为大家介绍阿里云的云数据库 RDS主要产品及计费方式、收费标准以及活动等相关情况,以供参考。
|
8月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1410 152
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1014 156
|
存储 关系型数据库 数据挖掘
【瑶池数据库动手活动及话题本周精选(体验ADB、 SelectDB,参与 RDS 迁移训练营)】(4.21-4.27)
本文为 “瑶池数据库动手活动及话题精选” 系列第一期,聚焦 SelectDB 日志分析、AnalyticDB Zero-ETL 集成、RDS 迁移训练营三大实战,设积分、实物等多重奖励,同步开启话题互动。点击链接参与,每周解锁数据库实战新场景。
|
人工智能 运维 关系型数据库
|
8月前
|
弹性计算 关系型数据库 数据库
云数据库RDS数据库迁移上云
阿里云RDS是一种安全稳定、高性价比的在线数据库服务,支持弹性伸缩,帮助用户轻松部署与扩展数据库。提供实例创建、白名单设置、数据库与账号管理、便捷连接等功能,简化运维操作,保障数据安全。
|
8月前
|
关系型数据库 MySQL 数据库
云时代MySQL:RDS与自建数据库的抉择
在云计算时代,选择合适的数据库部署方案至关重要。本文深入对比了AWS RDS与自建MySQL的优劣,帮助您在控制权、运维成本和业务敏捷性之间找到最佳平衡点。内容涵盖核心概念、功能特性、成本模型、安全性、性能优化、高可用方案及迁移策略,为您提供全面的决策参考。
|
9月前
|
关系型数据库 MySQL 程序员
从自建MySQL到阿里云RDS:程序员的数据库减负革命
如果你正在为自建MySQL数据库的高成本运维发愁,为凌晨三点的主从同步故障告警而崩溃,为开发团队频繁索要新测试库的要求感到窒息——是时候开启一场数据库的自我救赎了。 程序员更需构建"技术敏锐度+工程落地能力+跨域协作"的三维竞争力,通过创建技术组合形成差异化优势。企业应建立持续学习机制,提供AI沙盒环境促进技术转化。