技术好文共享:编程语言中,差、交、并、自然连接、选择、投影、笛卡尔积分别都是什么运算

简介: 技术好文共享:编程语言中,差、交、并、自然连接、选择、投影、笛卡尔积分别都是什么运算

交(Intersection):


关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:R∩S={t|t∈R //代码效果参考:http://www.lyjsj.net.cn/wx/art_23967.html

∧ t∈S}

简单来说,运算结果就是两或多个实体集所共有的部分


并(Union):


关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n目关系(“n目”指关系模式中属性的数目为n) 。记作:R∪S={t|t∈R∨t∈S}


简单来说,运算结果为两或多个实体集加起来,然后重复的部分只留下一个


差(Difference)


关系R与关系S的差由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:R-S={t|t∈R∧┐t∈S}


简单来说,运算结果为,在表R中去掉表S也有的部分


广义笛卡尔积(Extended Cartesian Product)


两个分别为n目和m目关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1k2个元组,记作:R×S={tr⌒ts| tr∈R∧ts∈S}


或记做R×S={(r1,…,rn ,s1,…,sm)∣((r1,…,rn)∈R∧(s1,…,sm)∈S)


r,s为R和S中的相应分量。


简单来说,就是把R表的第一行与S表第一行组合写在一起,作为一行。然后把R表的第一行与S表第二行依此写在一起,作为新一行。以此类推。当S表的每一行都与R表的第一行组合过一次以后,换R表的第二行与S表第一行组合,以此类推,直到R表与S表的每一行都组合过一次,则运算完毕。


如果R表有n行,S表有M行,那么笛卡尔积R×S有n×M行。


选取(Selection)


选取运算是单目运算,是根据一定的条件在给定的关系R中选取若干个元组,组成一个新关系,记作:σF(R)={t|t∈R∧F(t)为真}


其中,σ为选取运算符,F为选取的条件,它由运算对象(属性名、常数、简单函数)、算术比较运算符( > ,≥,<,≤,=,≠)和逻辑运算符(∨ ∧ ┐)连接起来的逻辑表达式,结果为逻辑值“真”或“假”。


选取运算实际上是从关系R中选取使逻辑表达式为真的元组,是从行的角度进行的运算。


简单地说,运算结果就是符合筛选条件的行


选择是根据给定的条件选择关系R中的若干元组组成新的关系,是对关系的元组进行筛选。选择运算示意图如下:


投影(Projection)


投影运算也是单目运算,关系R上的投影是从R中选择出若干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组。记作:ΠA(R)={t【A】|t∈R}


其中A为R中的属性列,Π为投影运算符。


从其定义可看出,投影运算是从列的角度进行的运算,这正是选取运算和投影运算的区别所在。选取运算是从关系的水平方向上进行运算的,而投影运算则是从关系的垂直方向上进行的。


简单地说,就是选取符合筛选条件的列,然后按照你所需要的顺序重新排列。


连接(Join)


连接运算是二目运算,是从两个关系的笛卡尔积中选取满足连接条件的元组,组成新的关系。


所谓自然连接就是在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉。即如果R与S具有相同的属性组Y,则自然连接可记作:RS={t r⌒ts |tr∈R∧ts∈S∧tr【Y】=ts【Y】}


自然连接是在广义笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。


出处:


版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。


部分文章来源于网络,如疏漏未标注原文地址或侵权,请联系进行删除。

相关文章
|
计算机视觉
数字图像处理实验(七)| 形态学图像处理{生成结构元素strel、腐蚀运算imerode、膨胀运算imdilate、开运算imopen、闭运算imclose}(附代码和实验截图、汉字视力表项目、总结)
数字图像处理实验(七)| 形态学图像处理{生成结构元素strel、腐蚀运算imerode、膨胀运算imdilate、开运算imopen、闭运算imclose}(附代码和实验截图、汉字视力表项目、总结)
614 0
数字图像处理实验(七)| 形态学图像处理{生成结构元素strel、腐蚀运算imerode、膨胀运算imdilate、开运算imopen、闭运算imclose}(附代码和实验截图、汉字视力表项目、总结)
|
2月前
|
机器学习/深度学习 存储 人工智能
矩阵乘法运算:在这看似枯燥的数字组合中,究竟蕴含着怎样令人称奇的奥秘?
【8月更文挑战第19天】矩阵乘法不仅是数学概念,还在工程、图像处理及AI等领域发挥核心作用。例如,通过矩阵乘法可精确实现图像变换;在神经网络中,它帮助模型学习和优化以识别图像和理解语言。两个矩阵A(m×n)与B(n×p)相乘得C(m×p),其中C[i,j]为A的第i行与B的第j列元素乘积之和。尽管面临维度匹配等挑战,矩阵乘法仍在持续推动技术创新。下次享受智能服务时,不妨想想背后的矩阵乘法吧。
38 3
|
2月前
|
算法
聊聊一个面试中经常出现的算法题:组合运算及其实际应用例子
聊聊一个面试中经常出现的算法题:组合运算及其实际应用例子
|
5月前
|
算法 C语言
计算机简单算法举例
计算机简单算法举例
19 1
|
4月前
|
数据库
数据库关系运算理论:传统的集合运算概念解析
数据库关系运算理论:传统的集合运算概念解析
48 0
|
5月前
|
自然语言处理
数学基础从高一开始2、集合间的基本关系
数学基础从高一开始2、集合间的基本关系
48 0
|
算法 C++
<<算法很美>>——(四)——深入递归<二>——“逐步生成结果“类问题之非数值型
<<算法很美>>——(四)——深入递归<二>——“逐步生成结果“类问题之非数值型
<<算法很美>>——(四)——深入递归<二>——“逐步生成结果“类问题之非数值型
|
开发工具
【排序引论】第三章 平行机排序问题
【排序引论】第三章 平行机排序问题
136 0
【排序引论】第三章 平行机排序问题
|
关系型数据库 数据库
数据库原理与应用系列_05关系模式的分解
定义:无损联接分解是将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式,则称这种分解为无损联接分解。
数据库原理与应用系列_05关系模式的分解
|
机器学习/深度学习 算法
【计算理论】计算理论总结 ( 图灵机设计示例 ) ★★
【计算理论】计算理论总结 ( 图灵机设计示例 ) ★★
346 0