讲座录播 | 邹磊教授:图数据库的概念和应用

news2024/12/23 13:49:21

2023年10月16日

由中国计算机学会主办的

“CCF Talk”直播间

进行了题目为

术语解读:“图计算”的内涵与应用

主题直播活动

讲座吸引7708人观看

图片

图作为一种灵活表达复杂关联关系的数据结构,目前已广泛地应用于社会治理、医疗健康、电网分析、计算材料、计算育种、EDA等众多领域。广义的图计算包括图数据的建模、存储、查询、管理,以及基于图数据的表示与应用等。近年来,随着人工智能与大模型等技术的发展,图计算的内涵和应用也在不断拓展。直播活动邀请了图计算领域的资深学者,围绕图计算这一概念的内涵和应用以及技术发展趋势进行探讨和交流。

下面向大家介绍北京大学邹磊教授本次报告:图数据库的概念和应用

报告摘要:近来图数据的研究引起了学术界和工业界的广泛关注,因为图可以更加方便的表达数据之间的复杂关联。图数据库在数据的模式定义、查询引擎的设计与优化方面和传统的关系数据库都有本质的区别。另外作为图数据的一个典型应用,知识图谱的数据管理的需求也对图数据库系统提出挑战性的研究问题。本报告将简要介绍图数据库的基本概念和相关应用。

文末附本次报告视频,直播活动的完整录播请关注中国计算机学会。

图片

报告分为四个部分,首先简单介绍图数据库的概念

图片

数据库系统是一种 DBMS(Data Management System)。数据库从本质上描述了实体、实体属性以及实体与实体之间的关系。而图数据库则不使用关系表来表达实体之间的联系,而是通过图的方式来呈现。在图中,每个节点表示一个实体,边表示实体之间的关联,边上的标签表示关系的性质。此外,实体可以具有特定的属性值。例如,我们可以使用图的方法来表示"James Watt"出生于1736年这一关联。

图片

图数据库最早出现在20世纪60年代,最初由IBM设计的IMS系统用于管理阿波罗计划土星号火箭的物资。IMS系统采用了层次数据模型,实际上是通过树形数据结构来表示数据和数据之间的关系。与此同时,通用电气(GE)在1964年设计和实施了IDS系统,这个系统更接近图数据库,采用了网络模型(Network Model)来表示数据和它们之间的关系。IDS系统是数据系统语言会议(Conference on Data Systems Languages, CODASYL)DBTG标准的基础实现版本。这些数据库系统是当时时代的产物,它们为不同类型的数据管理需求提供了不同的数据模型和方法。

图片

图片

这些早期数据库系统为后来的图数据库奠定了基础。现在,图数据库有两个主要派别,属性图和RDF图。属性图使用属性值来表示图上的点和边,而RDF图则受到了三元组数据模型的启发,使用主谓宾形式来表示实体之间的关系。这两种图数据库都有自己的查询语言, 如面向属性图的Cypher,以及面向RDF图的主流语言是SPARQL。

图片

图片

比较一下图数据库和传统关系数据库之间的不同。在关系数据库中,我们通常使用表来表示实体之间的关系,比如学生和教师之间的关系可以通过连接两个表来实现。而在图数据库中,实体之间的关系通常以图的形式存储,以更自然的方式表示实体和它们的关系。这种物化的方法使得图数据库更适合表达实体之间的复杂关系。

图片

在图数据库的发展过程中,有两个主要的派别,属性图和RDF图。属性图更侧重于表示实体的属性和关系,而RDF图更注重使用主谓宾形式来描述实体之间的关系。这两者都有自己的查询语言,但在某些情况下,它们可以表达相同的语义。

图片

接下来第二部分,将介绍图数据库的架构。

图片

与传统数据库类似,图数据库也包括查询层、存储层和分布式系统。在查询层,有些操作是通用的,无论是在结构化查询还是图挖掘中,都可以使用。这些通用操作使得图数据库更具灵活性。

图片

在查询层,我们认为有一些与传统数据库不同的地方。例如,图数据库中的子图模式查询,这是我们认为与传统数据库有所不同的地方。子图模式查询在图数据库中非常重要。

当我们处理图结构数据时,可能会用子图查询的方式。此外,在做图结构查询时,查询语言是一个基本组成部分。有两种主要的查询语言,一种是面向RDF的SPARQL语言,另一种是面向属性图的Cypher语言。这两种语言在这个例子中表示的语义是相同的。

图片

这是一个关于图数据库基准测试的例子,其中提取了一个查询语句。这个查询语句的意思是找到社交网络中的一条消息,查找它的作者以及对该消息的回复。然后,找到这两个消息的原始作者,还要查看他们之间是否存在好友关系。这种查询可以表达出子图模式,所以我们认为优化子图模式查询是图数据库查询引擎的一个关键因素。

图片

在RDF数据模型中,数据接近主谓宾的结构。虽然可以使用关系数据库存储它,但需要将这种结构转换为SQL语言并在关系表中执行操作。2011年,我们提出了一种匹配方法,使用点和边来表示RDF图中的主谓宾关系,并使用SPARQL语言进行查询,解决了子图匹配问题。

图片

图片

与关系型数据库不同,图数据库需要以一种完全不同的方式表示和处理数据,这包括图数据模型的逻辑和物理优化,这方面与关系型数据库有显著不同。

图片

在图数据库的存储层面,面临一系列挑战。图数据库以其随机访问的特性,需要不同于传统数据库的存储方式。

图片

图数据库的存储层面存在多个问题需要解决,包括如何进行图结构与属性存储以及选择合适的物理存储方式。这些问题需要综合考虑,以满足不同系统的需求。

图片

在图数据库的架构中,分布式优化是一个重要的考虑因素。有三大类分布式存储方法。

第一种是底层采用云平台和分布式文件系统。这种方法将存储与查询层分离,具有很强的通用性和容错性,但查询性能较低,因为数据分布和划分较为不透明和难以控制。

图片

第二种是多单机存储,将计算和存储整合在每台机器上。数据可以分布在多台机器上,查询根据数据划分执行并由控制节点合并。这种系统通常性能较高,但用户门槛较高,因为性能依赖于数据划分。这种架构在数据库领域广泛研究和应用。

图片

第三类分布优化方法借鉴了云数据库的概念,将系统分为计算节点和存储节点,每个计算节点可以访问所有存储节点,实现了横向扩展和负载均衡。然而,这种方法在工程实现上有较大的挑战,因为不同存储节点的网络延迟不同。

图片

下面简单介绍一下图数据库的应用

图片

推荐阅读这篇2017年的VLDB论文,这篇论文通过访谈和合作研究,研究了图数据库的应用领域。研究内容包括各大厂家在图数据库使用方面的特点,以及用户普遍关注的问题。

图片

主要谈一下图数据库在知识图谱中的应用。知识图谱本质上是一个用图的方法来表示实体和实体关系的网络,这一点与我们讨论图数据库建模的方法相同。

图片

研究知识图谱的广泛性可见于各个领域的研究者的参与。每位研究者都从独特的角度探索知识图谱,包括知识工程、自然语言处理、机器学习等。这种多元化的研究方式就像盲人摸象,每个人都在努力理解知识图谱的不同方面。

图片

图片

从数据库的角度来看待知识图谱,RDF采用了主谓宾的数据结构如何使用数据库来存储它。如果使用关系数据库,将数据存储为三元组表,将SPARQL查询转化为SQL来执行,但这种方法可能导致自连接操作性能较低。因此,我们考虑是否可以使用图数据库来存储知识图谱,这就是图数据库的研究人员在知识图谱领域可以发挥重要的作用。

图片

图片

讲者个人对未来研究的展望包括以下几个方面。

首先是动态图流系统。随着工业互联网和5G等技术的发展,图数据变得越来越动态,并且变化速度非常快。这种动态图流在工业互联网和高速网络路由等领域具有广泛的应用前景。

图片

第二个是说现在的图数据库跟图计算系统目前来说是分离的,一份数据在不同系统当中有多份,会造成空间消耗及数据的不一致性,未来可不可以有事务处理和分析的联机系统的一体化的图数据系统。

图片

以上是向大家汇报的关于图数据库的我们的一些认知。谢谢大家。

哔哩哔哩,,,

邹磊教授:图数据库的概念和应用-CCF Talk直播间

【讲座】邹磊教授:图数据库的概念和应用-CCF Talk直播间_哔哩哔哩_bilibili

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

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

相关文章

嵌入式软件工程师面试题——2025校招社招通用(十三)

说明: 面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但在这里博主希望每一个题目,大家都要…

Linux下MSSQL (SQL Server)数据库无法启动故障处理

有同事反馈一套CentOS7下的mssql server2017无法启动需要我帮忙看看,启动报错情况如下 检查日志并没有更新日志信息 乍一看mssql-server服务有问题,检查mssql也确实没有进程 既然服务有问题,那么我们用一种方式直接手工后台启动mssql引擎来…

有什么价格实惠的猫罐头?2023良心性价比的猫罐头推荐!

选购猫罐头至关重要,好的猫罐头不仅营养丰富,水分充足,适口性佳,还能易于消化吸收。然而,若选择不当,可能不仅无法达到预期效果,甚至可能产生负面影响。 作为一个从事宠物行业7年的宠物店店长&…

Python语言的十大特性。

文章目录 前言一、Python二、Python 编程语言的特性三、开源四、Python 中的 GUI 编程支持五、Python 支持高级语言六、可扩展性七、可移植性八、大型标准库九、解释性语言十、面向对象程序设计语言十一、表达力十二、常见问题总结Python技术资源分享1、Python所有方向的学习路…

【Mybatis小白从0到90%精讲】17:Mybatis Mapper XML必须同包同名吗?mappers配置的4种方式详解

文章目录 前言一、package方式二、resource方式三、url方式四、class方式五、源码求证前言 对于Mybatis Mapper,通常都是 Java接口与Mapper.xml 同包同名,那么是否必须同包同名? 实际上并不是必须,对于Mapper的配置,是在全局配置文件 mybatis-config.xml 中 通过mappers…

孙哥Spring源码第29集

第29集 解析事务属性中的传播属性 【视频来源于:B站up主孙帅suns Spring源码视频】【微信号:suns45】 1、事务属性有哪些? 1、事务属性2、传播属性3、只读属性 设置事务为只读,提高事务运行的效率 false 4、超时属性 超时属性 通…

一、认识微服务

目录 一、单体架构 二、分布式架构 三、微服务 1、微服务架构特征: 1.单一职责: 2.面向服务: 3.自治: 4.隔离性强: 2、微服务结构: 3、微服务技术对比: 一、单体架构 二、分布式架构 三…

UITableView的style是UITableViewStyleGrouped

一般情况下,UITableViewStylePlain和UITableViewStyleGrouped是UITableView常用到的style, 之前都是用到的时候,遇到问题直接用度娘,差不多就够用了,今天在修复UI提出的间隙问题,来回改,总觉得…

Rust-使用dotenvy加载和使用环境变量

系统的开发,测试和部署离不开环境变量,今天分享在Rust的系统开发中,使用dotenvy来读取和使用环境变量。 安装 cargo add dotenvy dotenv_codegen 加载环境变量 use dotenvy::dotenv;fn main() {dotenv().expect(".env不存在");…

[WSL] 安装hive3.1.2成功后, 使用datagrip连接失败

org.apache.hadoop.ipc.RemoteException:User: xxx is not allowed to impersonate anonymous 下载driver-hive-jdbc-3.1.2-standalone 解决 修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项 <property><name>hadoop.proxyuser.你的用户名.hosts…

李开复:未来AI或助力中国成为科技“火车头”

原创 | 文 BFT机器人 6月22日&#xff0c;创新工场的董事长兼首席执行官李开复&#xff0c;受邀在一场峰会上发表演讲&#xff0c;主题为《AI的飞奔时代》。 中国真的能成为AI超级强国吗&#xff1f; 李开复在演讲上盘点过去&#xff0c;展望未来&#xff0c;分析了过去几年中…

优秀智慧园区案例 - 珠海华发智慧园区,万字长文解析先进智慧园区建设方案经验

一、项目背景 珠海华发产业园运营管理有限公司&#xff08;简称“产业园公司”&#xff09;是2016年起连续五年跻身“中国企业500强”、国务院国企改革“双百企业”的珠海华发集团旗下的实体产业发展载体运营平台&#xff0c;依托“四园一基地”&#xff1a;中以国际产业园、信…

CTFhub-RCE-文件包含

访问网站 我们仔细看一下php代码&#xff0c;重点是 if (!strpos($_GET["file"], "flag")) { include $_GET["file"]; 这里有一个strpos(string,find,start)函数 意思在string字符串中找find的位置,start是查找的开始位置 那么这句代…

azkaban的安装

一、下载上传文件 二、创建目录 mkdir /opt/soft/azkaban 三、解压 tar -zxvf /opt/install/azkaban-db-3.84.4.tar.gz -C /opt/soft/azkaban tar -zxvf /opt/install/azkaban-exec-server-3.84.4.tar.gz -C /opt/soft/azkaban tar -zxvf /opt/install/azkaban-web-server-…

DALLE 2 文生图模型实践指南

前言&#xff1a;最近在运行dalle2模型进行推断&#xff0c;本篇博客记录相关资料。 相关博客&#xff1a;超详细&#xff01;DALL E 文生图模型实践指南 目录 1. 环境搭建和预训练模型准备环境搭建预训练模型下载 2. 代码3. BUG&DEBUGURLErrorRuntimeErrorCUDA error 1. …

【C语言 | 指针】C指针详解(经典,非常详细)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

这样书写Python代码的方式,实在是太优雅了~

文章目录 前言一、在Python中配合pipe灵活使用链式写法二 、pipe中常用的管道操作函数1.使用traverse()展平嵌套数组2.使用dedup()进行顺序去重3.使用filter()进行值过滤4.使用groupby()进行分组运算5.使用select()对上一步结果进行自定义遍历运算6.使用sort()进行排序 总结关于…

thinkphp8 多级控制器调用

在使用这个目录的时候正常访问时 http://tp.com/index.php/user2.login/index, 这个多级目录时不允许使用的&#xff0c;想要使用就的使用路由 在route/app.php 里面配置&#xff1a;Route::get(user2/login,user2.Login/index); 第一个参数时外部访问参数&#xff0c;第二个是…

Android权限动态申请(包括悬浮窗)

目录 效果图 一、环境配置 二、新建工具类 三、开始使用 备注&#xff08;一&#xff09;&#xff1a;用户手动设置权限 手动设置效果图 备注&#xff08;二&#xff09;&#xff1a;在Fragment中如何调用动态权限申请 备注&#xff08;三&#xff09;&#xff1a;悬浮窗…

SDL2 显示文字

1.简介 SDL本身没有显示文字功能&#xff0c;它需要用扩展库SDL_ttf来显示文字。ttf是True Type Font的缩写&#xff0c;ttf是Windows下的缺省字体&#xff0c;它有美观&#xff0c;放大缩小不变形的优点&#xff0c;因此广泛应用很多场合。 使用ttf库的第一件事要从Windows的…