在《数据库发展史》这篇文章中我们提到了相比于网状、层次数据库,关系型数据库的一大优势在于它有着严密的数理逻辑作为支撑。这个底层的数理逻辑,就是关系代数。
那什么是关系代数呢?关系代数是一种集合思维的操作语言。所谓集合的思维,在关系代数中特指:“一个集合,施加操作得到另一个集合,依次施加关系代数操作,进而得到所需结果(此处的集合,可理解为一张表,或者一个关系)。”或者说,关系代数是一种关于“关系”的规则,用集合的思维,代数的方式来描述、计算“关系”。
关系代数
关系代数的操作规则可以分为两类,一类是集合操作规则,一类是关系操作规则。
关系代数操作规则
一、基础概念
元组:结构化表格的行
并相容性:两个集合(表)的列数相同,且对应列的数值类型相同
二、集合操作规则
1、并操作
并操作
(姓名、魔法等数据来自漫画、动漫《妖精的尾巴》)
并操作定义:若关系R和关系S是并相容的,则关系R和关系S的并运算结果也是一个关系,记作:R∪S,它由或者出现在关系R中,或者出现在S中的元素构成。
2、差操作
差操作
差操作
差操作定义:若关系R和关系S是并相容的,则关系R和关系S的差运算结果也是一个关系,记作:R-S,它由出现在关系R中但不出现在S中的元素构成。
3、积操作
积操作
积操作定义:这里的积称作笛卡儿积,关系R和关系S的笛卡儿积运算结果也是一个关系,记作:R×S,它由关系R中的元组和关系S中的元组进行拼接构成。
4、交操作
交操作
交操作定义:若关系R和关系S是并相容的,则关系R和关系S的交运算结果也是一个关系,记作:R∩S,它由既出现在关系R中又出现在S中的元素构成。
三、关系操作规则
1、选择操作
选择操作
选择操作
选择操作定义:给关系R一个选择条件(简写为con),选择操作的结果也是一个关系,记作σcon(R),它由从关系R中选出的满足条件的元组构成
2、投影操作
投影操作
投影操作定义:一个关系R的投影操作结果也是一个关系,记作Πa(R),它由从关系R中选出的A列元素构成
3、连接操作
3.1 θ连接
θ连接
(姓名等数据来自漫画、动漫《间谍过家家》)
θ连接操作定义:R和S的θ连接操作结果也是一个关系,它由关系R和关系S的笛卡儿积中,选取满足θ条件的元素组成。
3.2 等值连接(一种特殊的θ连接)
等值连接
等值连接操作定义:R和S的等值连接操作结果也是一个关系,它由关系R和关系S的笛卡儿积中,选取满足θ条件(此时的θ条件特指俩关系中的某列的列值相等)的元素组成。
3.3 自然连接(一种特殊的等值连接)
自然连接
自然连接操作定义:R和S的自然连接操作结果也是一个关系,它由关系R和关系S的笛卡儿积中,选取满足θ条件(此时的θ条件特指俩关系中的相同属性列的列值相等)的元素组成。
3.4 外连接
外连接
(用户名称等数据来自作者喜欢的一些UP主)
外连接操作定义:R和S的外连接操作结果也是一个关系。若R和S进行连接时,俩个关系的行在对方关系找不到对应的行时,为了避免行数据的丢失,会假定该关系中存在空值来进行连接。
4、除操作
除操作
除操作
前提:“被除的“关系列数要大于”除以“关系的列数
除操作定义:R和S的除操作结果也是一个关系,记作R÷S。它的列是在R的基础上,剔除掉了S。它的行是R包含S行值的行中,剔除满足S行值后所剩余的部分。
,