关系代数

概念

R(A1,A2,...,An)R(A_1,A_2,...,A_n)R(A1​,A2​,...,An​)表示关系的名称是RRR,其属性是A1,A2,...,AnA_1,A_2,...,A_nA1​,A2​,...,An​。
例如Link关系中有两个属性From和To,一个元组(url1,url2)(url1,url2)(url1,url2)表示从链接1指向链接2。

  • 选择(selection) 筛选关系R中符合条件C的元组,记为:σC(R)\sigma_C(R)σC​(R)。
  • 投影(projection) 得到每个元组中仅包含属性S的原色,记为:πS(R)\pi_S(R)πS​(R) 。
  • 并(union)交(intersection)和差(difference)
  • 自然连接(natural join) 给定两个关系,如果两个元组的公共属性的属性值一致,则两个元组取并生成一个新的元组。记为R⋈SR\Join SR⋈S
  • 分组和聚合(grouping and aggregation) 给定关系R,分组是按照属性集合G对元组进行分割。常见的聚合运算有SUM,COUNT,AVG,MIN,MAX。记为γX(R)\gamma_X(R)γX​(R),其中XXX是一个元素表,每个元素可以是一个分组属性,也可以是表达式θ(A)\theta(A)θ(A),其中θ\thetaθ是聚合运算,AAA是一个非分组属性。

例子

  1. 使用Link关系寻找Web中长为2的路径。
    L1和L2分别是Link的副本,计算L1⋈L2L1\Join L2L1⋈L2,产生一个连接后的关系,(U1,U2,U3),只取首尾的属性,写作πU1,U3(L1⋈L2)\pi_{U1,U3}(L1\Join L2)πU1,U3​(L1⋈L2)
  2. 计算社交网络中的朋友个数。关系:Friends(User,Friend)
    先按照User字段进行分组,每一个组内统计Friend字段的数量。
    具体的运算为γUser,COUNT(Friend)(Friends)\gamma_{User,COUNT(Friend)}(Friends)γUser,COUNT(Friend)​(Friends)。

MapReduce上的关系代数运算

选择运算

Map函数: 对R中的每个元组t,检测它是否满足C。如果满足,则产生一个键-值对(t,t)。
Reduce函数: 作用类似恒等式,仅仅传递结果至输出部分。

投影运算

Map函数: 对R中的每个元组t,剔除不在S中的字段得到t‘,输出键-值对(t’,t’)。
Reduce函数: (t’.t’)有可能重复,Reduce函数将(t’,[t’,t’,…,t’])转换成(t’,t’)。

并、交和差运算

考虑R和S的并,将R或S中的文件块分配给Map任务。
Map函数: 将每个输入元组变成键-值对(t,t)。
Reduce函数: 剔除冗余,保证每个键只有一个值。

只输出有两个值对键
Map函数: 将每个输入元组变成键-值对(t,t)。
Reduce函数: 如果键t的值表为[t,t],则输出(t,t)。

R-S,只有出现在R中但不出现在S中的元组,计算时需要告知每个元组来自R还是S。
Map函数: 对R中的元组t,产生键-值对(t,R),同理产生(t,S)。
Reduce函数: 对每个键t,值表是[R],则输出(t,t)。

自然连接运算

Map函数: 对于R中的每个元组(a,b),生成键-值对(b,(R,a)),对S中的每个元组(b,c),生成键-值对(b,(S,c))。
Reduce函数: 每个键值b会与一系列对相关联,输出三元组(a,b,c)。

分组和聚合运算

假定对关系R(A,B,C)R(A,B,C)R(A,B,C)施加运算γA,θ(B)(R)\gamma_{A,\theta(B)}(R)γA,θ(B)​(R),Map函数主要负责分组运算,而Reduce函数则负责聚合运算。
Map函数: 对每个元组(A,B,C)生成键-值对(a,b)。
Reduce函数: 每个键a代表一个分组,关联的键值[b1,b2,…,bn]施加θ\thetaθ运算,输出结果(a,x)(a,x)(a,x)对,x是应用运算后对结果。

MapReduce的关系代数运算相关推荐

  1. MapReduce关系代数运算

    常见关系代数运算包括:选择.投影.并.交.差以及自然连接操作等,都可以十分容易利用MapReduce框架进行并行化计算 关系R NAME SEX AGE 小明 男 25 小红 女 18 小张 男 22 ...

  2. MapReduce关系代数运算——差

    MapReduce关系代数运算--差 关系沿用上一个选择运算的关系R和S,StudentR类也是一致的,本博文中就不赘述了. MapReduce程序设计 DifferenceMap import or ...

  3. MapReduce关系代数运算——投影

    MapReduce关系代数运算--投影 关系沿用上一个选择运算的关系R,StudentR类也是一致的,本博文中就不赘述了. MapReduce程序设计 Projection import org.ap ...

  4. MapReduce关系代数运算——选择

    MapReduce关系代数运算 常见的MapReduce关系代数运算有:选择.投影.并.交.差以及自然连接操作等,本文将介绍选择运算.后续博文介绍其他运算. 关系R 关系R id name age g ...

  5. MapReduce 基础算法【关系代数运算】

    关系代数运算 MapReduce可以在关系代数的运算上发挥重要的作用,因为关系代数运算具有数据相关性低的特性,这使得其便于进行MapReduce的并行化算法设计. 常见的关系代数运算包括选择.投影.并 ...

  6. MapReduce关系代数运算——自然连接

    MapReduce关系代数运算--自然连接 关系沿用之前的R. 创建两个文件 表1 student id name sex age 1 Amy female 18 2 Tom male 19 3 Sa ...

  7. mysql将sql转为关系代数_关系数据库基础:关系代数运算知识笔记

    1.关系代数运算符 集合运算符:并(U).差(-).交(∩).笛卡尔积(×) 专门的关系运算符:选择(∂).投影(π).连接(∞).除(÷) 算术比较符:大于(>).大于等于(≥).小于(< ...

  8. 计算机二级关系代数运算知识点,计算机二级:关系代数运算.doc

    精品文档 . 公共基础专题探究--关系代数运算 序号 高频考点 1 自然连接:一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉 自然连接满足下面的条 ...

  9. 关系代数运算_关系代数

    关系代数运算 When working with the relational model, we have 2 groups of operations we can use. 使用关系模型时 ,我 ...

最新文章

  1. Python入门(good)
  2. QMouseEvent
  3. Redis 的各项功能解决了哪些问题?
  4. DC学院学习笔记(十四):总体、采样及Error Bar
  5. RepositionBars的用法和参数分析
  6. mysql数据类型默认值_MySQL数据类型 - 数据类型默认值
  7. Oracle 热备份
  8. matlab的可视化视频,MATLAB的可视化(一)
  9. python能不能用c打开文件_C/C++/Python等 使用二进制模式打开文件与不使用二进制模式的区别...
  10. redis linux中的安装
  11. centos查看文件修改历史_Linux环境下查看历史操作命令及清除方法
  12. FTP用户无法登陆排错详解
  13. 80386的内存分页机制
  14. 【Django 2021年最新版教程7】前端html接收后端传递的变量值 渲染
  15. CAD地形图等高线标高批量取整工具,解决等高线标高出现小数的问题,等高线高程批量取整,在指定限差内将等高线标高修改为最接近的整数
  16. pytorch学习笔记7--循环神经网络、GAN
  17. namecheap域名注册商怎么样?可以注册哪些后缀域名?
  18. 腾讯马化腾:公司拥有大量探索和开发元宇宙的技术和能力
  19. 一张图说明softmax layer是什么
  20. Python + Selenium实现163邮箱的自动登录和发送邮件

热门文章

  1. 0编程基础学python之数据类型和数据操作
  2. 想知道录音转文字哪个软件好吗?来看看这篇文章
  3. 神盾特工hive_『百科-角色』蜂巢(Hive),沃德就变成这个玩意了
  4. Kitti数据集的读取与显示
  5. 富人和穷人的经典差异(转)
  6. tomcat启动时错误:Failed to start component [StandardEngine[Catalina].StandardHost[localhost].错误
  7. 安装owncloud虚拟服务器,安装owncloud作为自己的云服务器
  8. 正态累积分布函数的近似计算方法
  9. Java泛型与类型擦除--ImportNew
  10. 矩阵的条件数(condition number)