​数据库|传统的集合运算

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

传统的集合运算是二目运算,包括交、并、差、广义笛卡尔积四种运算,如下图所示:

1) 并(union)

关系R和关系5具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的元组组成,其结果关系仍为n目关系。

记作:

R ∪ S = { t | t ∈R ∨ t ∈s }

2)差(difference)

设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系s的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。

记作:

3)交(intersection)

设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系的交由既属于R又属于S的元组组成,其结果关系仍为n目关系。

记作

R ∩ S= { t | t ∈ R ∨ t ∈ S }

4.广义笛卡尔积(extended cartesian product)

两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组。

记作:

R ∩ S= { t | t ∈ R ∧ t ∈ S }

传统的集合运算不光会出现在高中的数学课本中,也会出现在数据库的学习中。数据库其实是一个二维的表,就相当于是一个数学的集合。有的时候需要两个表进行运算,比如,找到两个表中相同的部分,这个的运算机制就是传统的集合运算中的“交”。有的时候需要表本身进行计算,比如,只需要显示表中某一列的数值,这个就是关系的专门运算“投影”。所以传统的数学集合的关系运算与数据库专有的关系运算密切相关。我们要先弄明白集合的运算才能更好的学习关系运算。

END

主 编 | 张祯悦

责 编 | 杨金月

where2go 团队


原文发布于微信公众号 - 算法与编程之美(algo_coding)

原文发表时间:2019-09-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券