在《数据库发展史》这篇文章中我们提到了相比于网状、层次数据库,关系型数据库的一大优势在于它有着严密的数理逻辑作为支撑。这个底层的数理逻辑,就是关系代数。

那什么是关系代数呢?关系代数是一种集合思维的操作语言。所谓集合的思维,在关系代数中特指:“一个集合,施加操作得到另一个集合,依次施加关系代数操作,进而得到所需结果(此处的集合,可理解为一张表,或者一个关系)。”或者说,关系代数是一种关于“关系”的规则,用集合的思维,代数的方式来描述、计算“关系”。

关系代数怎么查询(图解关系代数)(1)

关系代数

关系代数的操作规则可以分为两类,一类是集合操作规则,一类是关系操作规则。

关系代数怎么查询(图解关系代数)(2)

关系代数操作规则

一、基础概念

元组:结构化表格的行

并相容性:两个集合(表)的列数相同,且对应列的数值类型相同

二、集合操作规则

1、并操作

关系代数怎么查询(图解关系代数)(3)

并操作

(姓名、魔法等数据来自漫画、动漫《妖精的尾巴》)

并操作定义:若关系R和关系S是并相容的,则关系R和关系S的并运算结果也是一个关系,记作:R∪S,它由或者出现在关系R中,或者出现在S中的元素构成。

2、差操作

关系代数怎么查询(图解关系代数)(4)

差操作

关系代数怎么查询(图解关系代数)(5)

差操作

差操作定义:若关系R和关系S是并相容的,则关系R和关系S的差运算结果也是一个关系,记作:R-S,它由出现在关系R中但不出现在S中的元素构成。

3、积操作

关系代数怎么查询(图解关系代数)(6)

积操作

积操作定义:这里的积称作笛卡儿积,关系R和关系S的笛卡儿积运算结果也是一个关系,记作:R×S,它由关系R中的元组和关系S中的元组进行拼接构成。

4、交操作

关系代数怎么查询(图解关系代数)(7)

交操作

交操作定义:若关系R和关系S是并相容的,则关系R和关系S的交运算结果也是一个关系,记作:R∩S,它由既出现在关系R中又出现在S中的元素构成。

三、关系操作规则

1、选择操作

关系代数怎么查询(图解关系代数)(8)

选择操作

关系代数怎么查询(图解关系代数)(9)

选择操作

选择操作定义:给关系R一个选择条件(简写为con),选择操作的结果也是一个关系,记作σcon(R),它由从关系R中选出的满足条件的元组构成

2、投影操作

关系代数怎么查询(图解关系代数)(10)

投影操作

投影操作定义:一个关系R的投影操作结果也是一个关系,记作Πa(R),它由从关系R中选出的A列元素构成

3、连接操作

3.1 θ连接

关系代数怎么查询(图解关系代数)(11)

θ连接

(姓名等数据来自漫画、动漫《间谍过家家》)

θ连接操作定义:R和S的θ连接操作结果也是一个关系,它由关系R和关系S的笛卡儿积中,选取满足θ条件的元素组成。

3.2 等值连接(一种特殊的θ连接)

关系代数怎么查询(图解关系代数)(12)

等值连接

等值连接操作定义:R和S的等值连接操作结果也是一个关系,它由关系R和关系S的笛卡儿积中,选取满足θ条件(此时的θ条件特指俩关系中的某列的列值相等)的元素组成。

3.3 自然连接(一种特殊的等值连接)

关系代数怎么查询(图解关系代数)(13)

自然连接

自然连接操作定义:R和S的自然连接操作结果也是一个关系,它由关系R和关系S的笛卡儿积中,选取满足θ条件(此时的θ条件特指俩关系中的相同属性列的列值相等)的元素组成。

3.4 外连接

关系代数怎么查询(图解关系代数)(14)

外连接

(用户名称等数据来自作者喜欢的一些UP主)

外连接操作定义:R和S的外连接操作结果也是一个关系。若R和S进行连接时,俩个关系的行在对方关系找不到对应的行时,为了避免行数据的丢失,会假定该关系中存在空值来进行连接。

4、除操作

关系代数怎么查询(图解关系代数)(15)

除操作

关系代数怎么查询(图解关系代数)(16)

除操作

前提:“被除的“关系列数要大于”除以“关系的列数

除操作定义:R和S的操作结果也是一个关系,记作R÷S。它的列是在R的基础上,剔除掉了S。它的行是R包含S行值的行中,剔除满足S行值后所剩余的部分。

,