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

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

交(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 国际」许可协议进行许可。


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

相关文章
|
7月前
|
算法 测试技术 C#
【并集查找 图论 位运算】3108. 带权图里旅途的最小代价
【并集查找 图论 位运算】3108. 带权图里旅途的最小代价
|
4月前
|
机器学习/深度学习 存储 人工智能
矩阵乘法运算:在这看似枯燥的数字组合中,究竟蕴含着怎样令人称奇的奥秘?
【8月更文挑战第19天】矩阵乘法不仅是数学概念,还在工程、图像处理及AI等领域发挥核心作用。例如,通过矩阵乘法可精确实现图像变换;在神经网络中,它帮助模型学习和优化以识别图像和理解语言。两个矩阵A(m×n)与B(n×p)相乘得C(m×p),其中C[i,j]为A的第i行与B的第j列元素乘积之和。尽管面临维度匹配等挑战,矩阵乘法仍在持续推动技术创新。下次享受智能服务时,不妨想想背后的矩阵乘法吧。
80 3
|
4月前
|
算法
聊聊一个面试中经常出现的算法题:组合运算及其实际应用例子
聊聊一个面试中经常出现的算法题:组合运算及其实际应用例子
|
5月前
|
算法 Java 程序员
三阶魔方公式解析与优化技巧
三阶魔方公式解析与优化技巧
|
SQL 存储 算法
为什么使用图进行关联运算比表Join更具吸引力?
为什么使用图进行关联运算比表Join更具吸引力?
为什么使用图进行关联运算比表Join更具吸引力?
|
机器学习/深度学习 存储 人工智能
啊哈 算法读书笔记 第 1 章 一大波数正在靠近——排序
首先出场的是我们的主人公小哼,上面这个可爱的娃就是啦。期末考试完了老师要将同 学们的分数按照从高到低排序。小哼的班上只有 5 个同学,这 5 个同学分别考了 5 分、 3 分、 5 分、 2 分和 8 分,哎考得真是惨不忍睹(满分是 10 分)。接下来将分数进行从大到小排序, 排序后是 8 5 5 3 2 。你有没有什么好方法编写一段程序,让计算机随机读入 5 个数然后将这 5 个数从大到小输出?
96 0
|
开发工具
【排序引论】第三章 平行机排序问题
【排序引论】第三章 平行机排序问题
149 0
【排序引论】第三章 平行机排序问题
|
存储 Java C++
(多图详解)优化枚举的基本思路 & 将二维抽象成一维 & 最大化「二分」效益 & 空间优化|Java 刷题打卡
(多图详解)优化枚举的基本思路 & 将二维抽象成一维 & 最大化「二分」效益 & 空间优化|Java 刷题打卡
|
资源调度 Serverless vr&ar
【计算理论】计算理论总结 ( 上下文无关文法 ) ★★
【计算理论】计算理论总结 ( 上下文无关文法 ) ★★
211 0
【计算理论】计算理论总结 ( 上下文无关文法 ) ★★
|
vr&ar
【计算理论】下推自动机 PDA ( 设计下推自动机 | 上下文无关语法 CFG 等价于 下推自动机 PDA )(二)
【计算理论】下推自动机 PDA ( 设计下推自动机 | 上下文无关语法 CFG 等价于 下推自动机 PDA )(二)
406 0
【计算理论】下推自动机 PDA ( 设计下推自动机 | 上下文无关语法 CFG 等价于 下推自动机 PDA )(二)