DASFAA2023 | 关系数据库和图数据库关键技术融合趋势

news2024/11/15 15:49:55

编者按:

本期论文导读为大家介绍近年来关系数据库和图数据库关键技术的融合趋势及代表性工作。相关内容来自DASFAA 2023 Tutorial “Fusion of Relational and Graph Database Techniques: An Emerging Trend”,由北京交通大学刘钰博士、中北大学郭青松博士和赫尔辛基大学陆嘉恒教授共同完成。

本期内容主要介绍:

  1. 关系数据模型(Relational Data Model)和图数据模型(Graph Data Model);

  2. 关系数据库的连接(Join)操作与图数据库的子图匹配(Subgraph Matching)操作;

  3. 关系和图数据库查询处理技术的融合趋势,具体包括:(1)可用于改进图查询的关系数据库技术;(2)可用于改进关系查询的图处理技术;

  4. 关系和图数据库融合的未来发展趋势和挑战。

1. 关系数据模型和图数据模型

关系数据模型是建模结构化数据的经典方式。其中,关系(Relation)需具备严格的模式(Schema),如图1所示。

图片

图1 关系数据模型及相关基本术语

近年来,随着各类实际应用场景的需求,关系数据模型得到扩展,支持嵌套关系模型(Nested Relational Model,即舍弃了关系模型第一范式的要求)、对象-关系模型(Object-Relational Model)、JSON等半结构化数据等。根据DB-Engines网站对DBMS的排名,位列前10名的数据库有8个声称自己是多模数据库(图2),即支持多种数据模型,包括Oracle、MySQL、Microsoft SQL Server、PostgreSQL、MongoDB、Redis、IBM Db2、Elasticsearch等。与此同时,也出现了多种多模查询语言(Multi-Model Query Language);除上述主流数据库管理系统外,代表性的包括ArangoDB Query Language(AQL)、OrientDB的OrientQL等。

图片

图2 主流DBMS对多种数据模型的支持情况

另一方面,图数据结构同样可支持存储结构化数据。图3从多个维度给出了关系型数据库(RDBMS)与图数据库(GDBMS)的对比(注:当前较为流行的图数据模型包括属性图模型和RDF模型等)。目前,ArangoDB、OrientDB等原生多模数据库和Oracle、IBM Db2等主流数据库系统都在一定程度上支持图遍历、查询和多种图算法。

图片

图3 RDBMS与GDBMS对比

2. 连接(Join)和子图匹配(Subgraph Matching)

关系数据库最为重要的操作是连接(Join)。由于涉及多个关系表,它也是执行代价最大的操作。在关系数据库的发展过程中,多种连接算法和代价估计方法被提出,用于连接操作的加速。其中,较早提出的并被当前主流RDBMS实现的连接算法为Binary Join方法。如图4所示,为了实现多表连接,需多次进行两表连接,并选取代价较小的连接顺序。然而,在面向复杂查询,如多表属性上的循环连接、或连接属性为多对多类型时,Binary Join易产生过大的中间结果。为此,Worst-Case Optimal(WCO)Join方法被提出,其采用对待处理的属性进行排序,每次处理一个属性(及包含该属性的所有关系表)而非对关系表进行排序并连接的方式,可证明在最坏情况下,其计算代价与问题输入输出规模是一致的。

图片

图4 Binary Join

近年来,不少工作都发现连接可看成一种特殊的图算法。以两表连接R(A,B) ⋈ S(B,C)为例(图5),将每个属性(即a、b、c)对应到一类节点集,并为其每个取值建立一个对应节点。对每个关系中的一个元组,其对应于相应属性取值的节点间的一条边。那么,每条从a类节点经过b类节点到达c类节点的路径都对应一个连接结果元组。换句话说,连接操作等价于在图上进行某种图结构的查找。

图片

图5 连接可看成一种特殊的图算法

实际上,该类图结构查找可抽象为一类子图匹配(Subgraph Matching)问题,即子图同构(Subgraph Isomorphism)问题(如图6)。直观来说,给定查询图Q(对应连接查询),子图同构查询返回数据图G(对应多个待查询的关系表)中所有与之在图结构和标签上都能一一对应的子图。例如,图6中有两个与Q同构的子图(节点1,2,3构成的子图,和节点2,3,4构成的子图)。注意此处我们允许G(和子图)包含多于Q的边。

图片

图6 子图匹配问题

子图匹配问题有很多算法研究工作,包括较早的Ullman算法、VF2算法,到较新的利用WCO Join思想进行多路连接(Multi-Way Join)的方法(图7)。值得注意的是,近年来不少工作讨论了连接操作和子图匹配的等价性(图8),其中不乏Neo4j、TigerGraph等知名图数据库厂商。

图片

图7 当前代表性的子图匹配算法

图片

图8 连接操作和子图匹配的等价性讨论

3. 关系和图数据库查询处理技术的融合趋势

3.1可用于改进图查询的关系数据库技术

RDBMS支持图查询处理的动机主要包括:

  1. 图查询处理的应用越来越广泛,包括社交网络、交通网络、广告、Web搜索等;

  2. 对很多实际应用,数据仍存储在关系数据库中,将数据重新导入图查询处理引擎需要额外代价(也包括后续处理代价等);

  3. 相对于RDBMS,图数据库系统在事务处理、持久性和完整性限制等方面还不完善;

  4. 关系数据模型和图数据模型的边界较为模糊,多数结构化数据既可建模为关系表,也可建模为图数据;

  5. 关系数据库的发展,如列存数据库,为高效图分析提供了技术保证。

总体来说,可用于改进图查询的关系数据库技术主要包括:

  1. 允许以点中心(Vertex-Centric)计算等方式对关系数据库进行操作;

  2. 通过扩展关系代数和SQL语法支持图查询分析处理;

  3. 通过更高效的连接操作(如WCO Join)提升图查询(如子图匹配)的效率。本文主要介绍(1)和(2);(3)的代表性工作可参考Mhedhbi, Amine, and Semih Salihoğlu. "Modern techniques for querying graph-structured relations: foundations, system implementations, and open challenges." Proceedings of the VLDB Endowment 15.12 (2022): 3762-3765.等相关综述工作。

3.1.1 以点中心(Vertex-Centric)计算等方式支持图查询处理

经典的点中心计算可以基于同步或异步模型,如图9所示。较早的在RDBMS上支持图查询计算的研究一般采用该方式,代表性工作包括Grail[CIDR 2015]、Vertica[VLDB 2014]等。

图片

图9 Vertex-Centric图计算模型

以Grail执行单源最短路径算法(Single-Source Shortest Path,SSSP)为例,从算法设计角度,可利用点中心的BSP模型(图10)。从算法实现角度,可构建点表vertex(id, data, val)和边表edge(src, dst, data, val),将图存储为关系数据(图11)。为了支持计算,还需若干临时表(next、cur和message)。如此一来,通过关系操作即可实现图10中的算法。

图片

图10 利用Vertex-Centric BSP模型计算单元最短路径

图片

图11 Grail实现图查询计算的数据结构

在系统实现中,Grail支持点中心的API接口,并将查询语句转换为SQL语句,提交给RDBMS执行。由于理论上点中心的算子都可由关系代数进行表示,该方式可有效支持图查询计算。

3.1.2通过扩展关系代数和SQL语法支持图查询分析处理

该类研究的代表性工作为Jeffrey Xu Yu教授于SIGMOD 2017发表的"All-in-one: graph processing in RDBMSs revisited."论文。通过对多种常见图算法进行抽象(图12),提出了4种新的关系代数操作,即矩阵乘(MM-join)、矩阵向量乘(MV-join)、Anti-join(Semi-join取反)和矩阵向量更新操作(Union-by-update),再通过扩展递归SQL的语法对其进行支持。

图片

图12 扩展关系代数和SQL语法支持多种图算法

该方法将图简单的存储为一个点表V(ID, vw)和一个边表E(F, T, ew)。利用新的关系代数操作,可实现对多种图算法(单步操作)的表达(图13):

图片

图13 用扩展的关系代数操作表达图算法(的单步操作)

类似的,IBM Db2 Graph在IBM Db2数据库上建立了一个图查询处理层,支持将Gremlin语法嵌入SQL,实现关系数据库对图查询的支持(图14)。

图片

图14 IBM Db2 Graph查询引擎及查询处理流程

3.2可用于改进关系查询的图处理技术

图处理技术和图数据库系统同样可用于加速关系查询。人民大学卢卫、杜小勇老师团队首次融合RDBMS(TPC-H)和GDBMS(LDBC)的benchmark进行测试,结果表明即使对关系基本操作如投影(Projection)、连接(Join)、聚集(Aggregation)和排序(Order By),GDBMS在投影和连接操作上较RDBMS有一定优势(图15)。

图片

图15 RDBMS和GDBMS在基本关系操作上的效率对比

我们主要介绍两个代表性工作,分别利用随机游走的思想加速在线聚集(Online Aggregation)查询,和利用图建模的思想加速关系型OLAP查询。

3.2.1 利用随机游走加速在线聚集查询

SIGMOD 2016的最佳论文Wander Join将关系表连接隐式的看成图,利用随机游走(Random Walk)加速在线聚集查询(图16)。其中,表间的随机游走通过索引进行实现。由于该方法可保证采样结果一定属于连接结果,故采样数远远少于已有的Ripple Join等方法。

图片

图16 Wander Join基本思想

3.2.2 利用图建模和并行图计算加速OLAP查询

UCSD某团队与TigerGraph合作,在SIGMOD 2021发表了Vertex-centric Parallel Computation of SQL Queries论文,通过将多个关系表存储为类似RDF的图结构,并采用多线程实现点中心图计算来加速TPC-H查询。具体的,该方法首先使用Tuple-Attribute Graph (TAG)存储关系型数据(图17):

图片

图17 TAG数据结构 

该存储方式的优势在于,如果两个元组(如NATION表的(1,USA)和CUSTOMER表的(10,1,Bob))可连接出结果,那么在TAG图中对应节点(NATION_1和CUSTOMER_10)必然通过连接属性(值为1的节点)相连。其次,该论文设计了点中心的多线程连接算法,实现两表单属性连接、两表多属性连接、多表无环连接和有环连接(Cyclic Join)。其中,最简单的两表单属性连接思路如下图所示。

图片

图18 两表连接的实现算法 

通过在TPC-H和TPC-DS上进行测试,该实现方法总体好于代表性的商用RDBMS,表明利用图建模和图算法技术优化OLAP类查询还有很大改进空间,为关系数据库优化提供了新的思路。

图片

图19 TAG-Join与代表性RDBMS的效率对比

4. 关系和图数据库融合的未来发展趋势和挑战

我们认为关系和图数据库融合的开放性问题与挑战主要包括:

在支持多模(multi-model)数据的查询语言方面,需要提出对应的代数抽象,能像关系代数指导关系查询语言那样提供理论指导。同时需要研究跨模型查询优化的通用技术。

面向各种图查询和分析,当前部分关系数据库的前沿技术(如WCO Join)已用于子图匹配等图查询的加速,我们期待这些技术能与众多图算法研究中的优化技巧相结合。此外,如何实现多种图分析算法的效率与通用性间的平衡也是有趣的研究问题。

对于如何利用图处理技术实现关系查询加速,需要从图视角进一步开展结构化(关系)数据和关键操作的建模,并利用图算法领域的方法技术实现优化。同时,我们也注意到图数据库需要进一步提升其对事务、恢复、容错和完整性检查等数据库基本功能的支持和稳定性保证。

注:本工作得到CCF-腾讯犀牛鸟科研基金资助。

图片

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1110992.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【持续更新】tutorial-Linux-Markdown-etc(Linux、命令、Markdown、md、Tex、LaTex)

1. Linux命令 1.1 常用 查看文件夹下文件数量: ls -l | wc -l7zip: 解压:7z x compressed_file.7z -o/path/to/destination # 注意-o和目标路径是连起来的,没有空格压缩:7z a compressed_file.zip destination_path conda 查看 conda 拥有的…

@JsonCreator(mode = JsonCreator.Mode.DELEGATING) @JsonValue解释

@JsonCreator(mode = JsonCreator.Mode.DELEGATING)public MessageId(Long id) {this.id = id;}<

【中级网络工程师】下午网络配置题

目录 dis ip routing-table 路由表如何查看 静态路由配置&#xff1a; rip和ospf配置 ACL配置 定义ACL过程 关键字traffic-filter inbound 和 traffic-filter outbpund 两种安装模式 DHCP服务 基于全局分配&#xff1a; 基于接口分配&#xff1a; 如何将划分的VLAN和创…

如何确认栈中申请的变量地址

一般一个程序被加载到内存后执行而成为一个进程。进程在内存中是分区域加载的&#xff0c;分别是代码段、数据段、bss段等等。 函数中定义的变量一般存在于栈中。现在我们通过实验验证一下&#xff0c;函数中定义的变量&#xff0c;到底存在与进程哪个位置。 1.测试程序 #in…

opencv入门到精通——图片,视频,摄像头的读取与保存

简介 OpenCV是一个流行的开源计算机视觉库&#xff0c;由英特尔公司发起发展。它提供了超过2500个优化算法和许多工具包&#xff0c;可用于灰度、彩色、深度、基于特征和运动跟踪等的图像处理和计算机视觉应用。OpenCV主要使用C语言编写&#xff0c;同时也支持Python、Java、C等…

unity操作_碰撞器 c#

碰撞器Collider 在场景中选择一个物体Cube 观察检查器Inspector 自带Cube会默认挂载盒子碰撞器Box Colilider 增加组件可以增加更多中碰撞器 Edit Collider 编辑碰撞器形状 Is Trigger选项 Is Trigger &#xff1a;是否是触发器&#xff0c;如果启用此属性 则该碰撞体将用于触…

分享一下微信小程序里的预约链接怎么做

微信小程序是一种无需下载安装即可使用的应用程序&#xff0c;它依托于微信平台&#xff0c;为用户提供了更加便捷的使用体验。在小程序中&#xff0c;我们可以制作预约链接&#xff0c;以便用户直接在微信中进行预约&#xff0c;提高服务效率。下面我们将探讨如何制作微信小程…

RabbitMQ中的核心概念和交换机类型

目录 一、RabbitMQ相关概念二、Exchange类型三、RabbitMQ概念模型总结 一、RabbitMQ相关概念 Producer&#xff1a;生产者&#xff0c;就是投递消息的一方。生产者创建消息&#xff0c;然后发布到RabbitMQ中。消息一般可以包含两个部分&#xff1a;消息体和附加消息。 消息体…

利用Nginx可视化管理工具+Cpolar实现本地服务远程访问

文章目录 前言1. docker 一键安装2. 本地访问3. Linux 安装cpolar4. 配置公网访问地址5. 公网远程访问6. 固定公网地址 前言 Nginx Proxy Manager 是一个开源的反向代理工具&#xff0c;不需要了解太多 Nginx 或 Letsencrypt 的相关知识&#xff0c;即可快速将你的服务暴露到外…

nextjs-一个基于React的全栈框架

一、nextjs基本介绍 Next.js是一个基于React的轻量级框架&#xff0c;用于构建React应用程序。它在React的基础上提供了一些增强功能&#xff0c;包括服务器渲染&#xff08;SSR&#xff09;、静态生成&#xff08;SSG&#xff09;、路由等。Next.js的目标是简化React应用程序…

工业自动化控制通信协议Profinet系列-2、编译p-net在虚拟机树莓派上运行示例

工业自动化控制通信协议Profinet系列-2、编译p-net在虚拟机树莓派上运行示例 文章目录 工业自动化控制通信协议Profinet系列-2、编译p-net在虚拟机树莓派上运行示例一、前言二、树莓派虚拟机编译安装测试1、树莓派desktop下载及虚拟机安装2、下载编译安装p-net及运行demo程序 三…

【Javascript保姆级教程】if判断语句的三种形式

文章目录 前言一、if语句1.1 怎么使用1.2 示例代码1.3 示例代码2 二、if...else语句2.1 怎么使用2.2 示例代码2.3 示例代码 三、if...else if...语句3.1 怎么使用3.2 示例代码3.3 示例代码 总结 前言 嗨&#xff0c;欢迎来到Javascript保姆级教程&#xff01;在编写代码时&…

学习笔记1——SSM的基础知识

SSM的基础知识 cs架构&#xff1a;多个客户端可以访问一台服务器 请求&#xff1a;协议&#xff1a;//主机[: 端口][/路径][?查询参数] http就是一种协议&#xff0c;https是一种带加密的协议更加安全一点主机&#xff1a;localhost端口号&#xff1a;因为tomcat和mysql都是…

Babylonjs学习笔记(二)——创建基本材质

书接上回&#xff0c;这里讨论给网格添加材质&#xff01;&#xff01;&#xff01; 准备好材质 1、创建材质球 /*** 创建网格材质* param scene 场景对象* returns 材质对象*/ const createGroundMaterial(scene:Scene):StandardMaterial>{const texArray:Texture[] []// …

计网----数据包在传输中的变化过程,单播组播和广播,APR协议,APR代理,免费ARP,DNS协议,路由数据转发过程

计网----数据包在传输中的变化过程&#xff0c;单播组播和广播&#xff0c;APR协议&#xff0c;APR代理&#xff0c;免费ARP&#xff0c;DNS协议&#xff0c;路由数据转发过程 一.数据包在传输中的变化过程&#xff08;在同一个路由器下&#xff09; 1.传输数据时&#xff0c…

《SQLi-Labs》04. Less 23~28a

title: 《SQLi-Labs》04. Less 23~28a date: 2023-10-19 19:37:40 updated: 2023-10-19 19:38:40 categories: WriteUp&#xff1a;Security-Lab excerpt: 联合注入&#xff0c;注释符过滤绕过之构造闭合&#xff0c;%00 截断、二次注入、报错注入&#xff0c;空格过滤绕过&…

蓝牙助听模块场景分析之一

蓝牙助听模块场景分析之一 使用经典蓝牙助听&#xff0c;低成本&#xff0c;cVc降噪&#xff0c;支持蓝牙音频。 利用高通cVc算法&#xff0c;本地麦克风&#xff08;支持单麦和双麦&#xff09;声音输入到高通QCC芯片&#xff0c;然后QCC芯片DSP&#xff08;cVc算法&#xf…

第十五章总结

一.输入/输出流 1.输入流 InputStrema类是字节输入流的抽象类&#xff0c;它是所有字节输入流的父类。 该类中所有方法遇到错误都会引发IOException异常。 read()方法&#xff1a;从输入流中读取数据的下一个字节。返回0~255的int字节值。如果因为已经到达流末尾而没…

开源智能体来啦!港大团队发布OpenAgents,可以搞数据分析、聊天、支持200+插件

夕小瑶科技说 原创 作者 | 智商掉了一地、ZenMoore 港大的研究团队最近发布了一个新的开源 Agent 框架&#xff0c;名为 OpenAgents. 它可以用于实际用户场景&#xff0c;特别是在使用自然语言执行复杂任务的情况下。先前的语言智能体框架主要关注概念验证或者供开发人员使用&…

6个无版权、免费、高清图片素材库

找免费无版权图片素材&#xff0c;就上这6个网站&#xff0c;超高质量&#xff0c;可商用&#xff0c;赶紧收藏&#xff01; 1、菜鸟图库 https://www.sucai999.com/pic.html?vNTYwNDUx 网站主要为新手设计师提供免费素材&#xff0c;这些素材的质量都很高&#xff0c;类别也…