一、关系代数介绍

①引言
很多非科班出身的朋友会感到疑惑,为什么学着学者数据库,就突然来了一堆数学运算符呢?读完本篇文章,你会将关系代数与数据库的关系在脑子中形成一个联系,起到抛砖引玉的作用(当然也全是干货)。

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

任何运算的三大基本要素都是运算对象运算符运算结果。关系代数运算对象关系运算结果也是关系

如果你没有接触过这方面的内容,读到这里你肯定会产生一个疑惑,什么是关系

下面说明关系相关概念,以及其与关系型数据库(典型代表为MySql)的联系:

  • 关系可以理解为关系型数据库的一个table
  • 关系的可以理解为关系型数据库的一列
  • 关系的某个目的某个元组可以理解为关系型数据库某个列的某个值

③关系代数的分类
关系代数可以分为集合运算关系运算两类。
集合运算:

集合运算符含义
×笛卡尔积

关系运算:

关系运算符含义
σ选择
Π投影
140a2bed4e3d4403973b8936a5ea4def.png连接
÷

下面将分别介绍两类运算。

二、集合运算

前三项运算均有一个大前提:两个关系具有相同的————也即两个table的属性完全相同。

假设RS为两个目相同的关系,则它们之间有如下关系:

R∪S的结果为R中元组与S中元组的并,如图(图中R的A1应为小写a1):R∪S包含了R与S中的所有元组。
20170311210114252.png

R∩S的结果为R与S的共有元组,如图:红蓝两行为共有。
20170311214944646.png

R−S的结果为,R中有但S中没有的元组,如图:只有R中黑色的行,在S中没有。
20170311214625267.png

笛卡尔积×

千万别被笛卡尔积吓到,它的结果其实就是:把R的目与S的目拼接,且元素一一匹配拼接,看图就懂了:
20170311215125320.png

  • 笛卡尔积是要求目数相同的,若R为n目x元组S为m目y元组,则R×S为(n+m)目x*y元组

三、关系运算

  • 首先介绍R(X, Z)表示法:R为关系,X和Z为R的两个目。

①象集

在一个关系R(X, Z)中,x1的象集Zx1是指一个集合,集合中的元素是Z的元组,且那一行X的元组为x1。举例说明:下表表示关系R

XZ
x1z2
x1z3
x1z1
x2z2
x2z3

则x1的象集Zx1={z1, z2, z3}。

选择σ

选择又称为限制(restriction)它是在关系R中选择满足给定条件的诸元组,记作:
07c77c9249414c2193c0bb4776f4f044.png
其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”
选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。

选择结果为一行或多行:即根据某些条件挑选出即

设有一个学生-课程库,包括学生关系student、课程关系course和选修关系selectedcourse如图:
249098aa839047e791278a59c8b16db3.png
那么以下就为选择的一个例子:

  • 查询课程名为数学的课程信息
SELECT * FROM course
WHERE course_name = '数学';
  • 其关系代数表示为:ba0765f0b8c74a9a9d5c9117b0bde1fa.png
  • 结果为:
    0ff8e5bd9f5d49b499b6dcbcba95dac3.png

投影Π

关系R上的投影是从关系R中选择出若干属性列组成新的属性。记作:
581e92e577704655856e22fa6288f958.png
其中A为R中的属性列。

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

以下为投影的一个例子:

  • 查询学生的姓名和所选课程号
SELECT student_id, course_id FROM selectedcourse;
  • 其关系代数表示为:2ba6d6d4671a46eb82322bc97f395065.png
  • 结果为:
    a2e493645f484e459b1059fb925d5495.png

连接140a2bed4e3d4403973b8936a5ea4def.png

连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:
149b65b45b834285b5186b70f316512c.png

其中,A和B分别为R和S上列数相等且可比的属性组,θ是比较运算符。连接运算符从R和S的笛卡尔积R×S中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系θ的元组。

连接运算中有两组最为重要和常用的连接,即等值连接和自然连接
θ为“=”的连接运算为等值连接。它是从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:
d5566397ae3c4e4f8e90bbd04780ef8c.png

自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉,若R和S中具有相同的属性组B,U是全体集合,自然连接可记作:
bb54e57c5a334ff58256949bd848b5b6.png
(未完待续 2022/4/28)

参考

https://blog.csdn.net/qq_35252878/article/details/61479635
https://blog.csdn.net/weixin_58587245/article/details/121949372

Q.E.D.


遇事不决,可问春风