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

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

2.4 关系代数

关系代数是一种抽象的查询语言,它用对关系的运算来表达查询

运算的三大要素:

1.运算对象

2.运算符

3.运算结果

关系代数的运算对象是关系,运算结果也为关系。

关系代数用到的运算符包括两类:

1.集合运算符

2.专门的关系运算符

关系代数的运算按运算符的不同可以分为:

1.传统的集合运算

传统的集合运算将关系看成元组的集合,其运算是从关系的“水平”方向进行,即行的角度来进行。

2.专门的关系运算

专门的关系运算不仅涉及行而且涉及列。使用比较运算符和逻辑运算符来辅助专门的关系运算符进行操作。

2.4.1 传统的集合运算

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

设关系R和关系S具有相同的目n,即两个关系都有n个属性,且相应的属性取自同一个域,t是元组变量,t∈R表示t是R的一个元组。

  • 相容性:
    两个关系具有相同的目。
    两个关系相应的属性取自同一个域。

1. 并(基本运算)

关系R与关系S的并记作,R∪S = { t | t∈R ∨ t∈S } ,其结果仍为n目关系,由属于R或属于S的元组组成。

并为行的并,所有行合成一个表,除去重复的

2. 差(基本运算)

关系R与关系S的差记作,R-S ={ t | t∈R ∧ t∉S } ,其结果仍为n目关系,由属于R而不属于S的所有元组组成。

3. 交(非基本运算)

关系R与关系S的交记作,R∩S ={ t | t∈R ∧ t∈S } ,其结果关系仍为n目关系,由 属于R 属于S的元组组成。关系的交可以用差来表示,即 R∩S = R - (R-S)。

4. 笛卡尔积(基本运算)

两个分别为n目和m目的关系R和S的笛卡尔积是一个 (n+m)列 的元组的集合(不具有相容性)。元组的前n列为关系R的一个元组,后m列是关系S的一个元组。

若R有k1个元组,S有k2个元组,则关系R和关系S的笛卡尔积有 k1 * k2个元组 。记作

2.4.2 专门的关系运算

专门的关系运算包括选择、投影、连接、除运算

引入记号:

  1. 关系模式为R(A1,A2,…,An),它的一个关系设为R。t∈R表示 t 是R的一个元组。t[Ai] 则表示元组 t 中相应于属性 Ai 的一个分量。即为元组中一个属性的值

  1. 若A = { Ai1,Ai2,…,Aik },其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则称A为属性列或属性组。t[Ai] = ( t[Ai1],t[Ai2],…,t[Aik] )表示元组 t 在属性列A上诸分量的集合。

即对关系R和关系S的属性进行拼接

设有一个学生-课程的数据库,包括学生关系Student,课程关系Course,选修关系SC,后面的多个例子将会对这三个关系进行运算。

1. 选择(基本运算)

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

其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。

逻辑表达式F的基本形式为:X1 θ Y1 ,其中 θ 表示比较运算符,X1,Y1等是属性名,或为常量,或为简单函数,属性名可以使用属性的序号来代替。在基本选择的条件上可以进一步进行逻辑运算

相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
相关文章
|
3月前
|
关系型数据库 MySQL 数据库
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
|
6月前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
386 6
|
3月前
|
SQL 关系型数据库 数据库
数据库空间之谜:彻底解决RDS for SQL Server的空间难题
【8月更文挑战第16天】在管理阿里云RDS for SQL Server时,合理排查与解决空间问题是确保数据库性能稳定的关键。常见问题包括数据文件增长、日志文件膨胀及索引碎片累积。利用SQL Server的动态管理视图(DMV)可有效监测文件使用情况、日志空间及索引碎片化程度。例如,使用`sp_spaceused`检查文件使用量,`sys.dm_db_log_space_usage`监控日志空间,`sys.dm_db_index_physical_stats`识别索引碎片。同时,合理的备份策略和文件组设置也有助于优化空间使用,确保数据库高效运行。
78 2
|
3月前
|
关系型数据库 数据库 数据安全/隐私保护
"告别繁琐!Python大神揭秘:如何一键定制阿里云RDS备份策略,让数据安全与效率并肩飞,轻松玩转云端数据库!"
【8月更文挑战第14天】在云计算时代,数据库安全至关重要。阿里云RDS提供自动备份,但标准策略难以适应所有场景。传统手动备份灵活性差、管理成本高且恢复效率低。本文对比手动备份,介绍使用Python自定义阿里云RDS备份策略的方法,实现动态调整备份频率、集中管理和智能决策,提升备份效率与数据安全性。示例代码演示如何创建自动备份任务。通过自动化与智能化备份管理,支持企业数字化转型。
93 2
|
3月前
|
存储 C# 关系型数据库
“云端融合:WPF应用无缝对接Azure与AWS——从Blob存储到RDS数据库,全面解析跨平台云服务集成的最佳实践”
【8月更文挑战第31天】本文探讨了如何将Windows Presentation Foundation(WPF)应用与Microsoft Azure和Amazon Web Services(AWS)两大主流云平台无缝集成。通过具体示例代码展示了如何利用Azure Blob Storage存储非结构化数据、Azure Cosmos DB进行分布式数据库操作;同时介绍了如何借助Amazon S3实现大规模数据存储及通过Amazon RDS简化数据库管理。这不仅提升了WPF应用的可扩展性和可用性,还降低了基础设施成本。
81 0
|
4月前
|
消息中间件 关系型数据库 数据库
实时计算 Flink版操作报错合集之在使用RDS数据库作为源端,遇到只能同步21个任务,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
6月前
|
SQL 关系型数据库 Serverless
阿里云关系型数据库RDS
阿里云关系型数据库RDS
256 49
|
5月前
|
消息中间件 关系型数据库 Serverless
函数计算产品使用问题之如何通过vpc来连接rds数据库
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
关系型数据库 数据管理 数据库
数据管理DMS产品使用合集之如何极速恢复RDS(关系型数据库服务)中的数据表
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
114 3
|
4月前
|
关系型数据库 数据库 RDS
利用DTS将自建mysql5.7版本数据库迁移至对应rds报错
利用DTS将自建mysql5.7版本数据库迁移至对应rds报错
149 0