数据库及其应用

【CSDN编者注】图形数据库像新一代关系数据库一样,在很多领域取代传统关系数据库取得了长足的进步。图数据库相对于传统关系数据库有哪些优势?适用于哪些技术领域?未来情况如何,有哪些机会?《Neo4j程序员002》邀请了仲亚太区售前及技术总监余芳华为大家解读图形数据库。

作者 | 俞方桦 责编 | 张红月
出品 | 《新程序员》编辑部

随着大数据时代的到来,传统的关系数据库由于其在数据建模和存储方面的局限性,越来越难以满足大量频繁变化的需求。关系数据库虽然名字中有“关系”二字,但并不擅长处理复杂关系的查询和分析。此外,关系数据库也缺乏在多台服务器上水平伸缩的能力。基于此,一种被统称为“NoSQL”存储的非关系数据库应运而生,并很快被广泛研究和应用。NoSQL(不仅仅是SQL,非关系数据库)是一个广泛的数据持久化解决方案。它们不遵循关系数据库模型,也不使用SQL作为查询语言。其数据存储不需要固定的表模式,而且往往避免使用SQL JOIN操作,一般特点是水平可伸缩性。

简而言之,NoSQL数据库可以根据其数据存储模型分为四类:

键值存储

基于列的商店

文档存储

图形数据库(图形数据库)

从DB-Engines公布的数据库技术类别趋势图(见图1)不难看出,图形数据库在近十年来受到广泛关注,是发展最快的数据库类型。

数据库及其应用

图1数据库技术发展趋势(截至2021年6月)来源:DB-Engines

那么,到底什么是“图形数据库”?图数据库相对于关系数据库有什么优势?

本文摘自《新程序员002:新数据库时代&;软件定义的汽车

图形数据库和关系数据库的比较

图形数据库是指用图形来表示、存储和查询数据的一种数据库。这里的“图”与图片、图形、图表无关,而是基于数学领域中“图论”的概念,通常用来描述某些事物之间的某种关系。例如,在我们的日常生活中:

社交网络是图表。每个社交网络中的参与者都是节点,我们在社交网络中的互动,比如“加好友”、“赞”等,都是连接节点的边。

城市交通是一张地图。每个路口,门牌号,公交车站等。是节点,街道或者公交线路是边,连接可以到达的地方。

知识也是图表。每一个名字、概念、人物、事件等。是节点,而类属关系、分类关系、因果关系等。是边,边把节点连接起来,形成一个巨大的、丰富的、不断进化的知识图谱。

可以说“图无处不在”,这也是为什么传统的关系数据库不擅长处理关系问题而图数据库可以很好的解决,图数据库就是为解决这个问题而生的。

其实在某些方面,图数据库就像是新一代的关系数据库,不同的是图数据库不仅存储实体,还存储实体之间的关系。关系数据库通过“主键-外键”来表达隐含的“关系”连接,但实际上这里的“关系”是关系代数中的一个概念,与我们现实世界中的“关系”是不同的。

通过预先在数据库中物理存储关系(我们称之为“原生”),图数据库将查询性能从几分钟提高到几毫秒,尤其是对于频繁的JOIN查询。图2比较了在社交网络数据集、原生图数据库和关系数据库上搜索朋友圈的查询执行效率。显然,使用图数据库的效率比使用传统的关系数据库有了很大的提高。

图2比较了图形数据库和关系数据库的查询性能。

作为一种NoSQL数据库,图数据库通常不需要先定义严格的数据模式和强制字段类型,这使得它在处理结构化和半结构化数据时同样得心应手。

除了存储和查询效率的优势,图数据库还具有更丰富的分析能力。通过比较这四种主要非关系数据库的特点就可以知道了(见表1)。

表1四种主要非关系数据库的特征

图形数据库的主要技术领域

既然图形数据库有很多优点,而且发展很快,那么它主要涉及哪些技术领域?我们用图3来描述它。具体来说,图形数据库的主要技术领域包括存储方式、图形模型、图形查询语言、图形分析和图形可视化。

存储模式

原生图与非原生图

图形数据库使用节点和边来模拟真实世界的数据。对于实际的底层物理存储技术,目前主要有两种方法:

原生,即按照节点、边、属性组织数据存储。典型代表有Secondary,JanusGraph,TigerGraph,Neo4j。

非本机,使用其他存储类型。比如基于列存储的DataStax,基于键值对的OrientDB,基于文档的MongoDB。一些关系数据库还在关系存储之上提供类似图形的操作。

一些图计算平台支持各种存储技术,包括图存储,称为“多模式”,比如百度HugeGraph。

原生图存储根据图数据和图操作的特点进行优化,从物理存储到内存的图处理采用一致的模型,不需要“模式转换”,在大数据量、深度复杂查询、高并发的条件下,性能普遍优于非原生图存储。

图的分布式存储

为了支持大规模的图形存储和查询,有必要对图形进行分布式存储。有两种类型的分布式实现方法:

1.碎片。分片是按照一定的原则(比如按照节点ID的随机分布)将数据分布存储在多个存储实例中。根据分割规则,它可以分为:

按点拆分。每个边只保存一次,并且出现在同一个分区上。如果不同分区中的两条边有一个公共点,这些点将被复制到它们各自的分区中。这样邻居(忙节点)多的点会被分布到多个分区,会增加存储空间空,可能会造成同步问题。这种方法的优点是减少网络通信。

按边分割。边分裂后顶点只保存一次,切割边会被打断保存在不同的分区中。在基于边的操作中,对于两个顶点分成两个不同分区的边,需要通过网络传输数据。这样增加了网络传输的数据量,但是有节省存储空的好处。

为了优化性能,目前比较常见的是按点划分的分布式图。

2.分区。因为现实世界中的图往往遵循“幂律分布”,即少数节点有大量的边,而大多数节点的边很少。碎片化存储必然会造成数据的大量冗余副本或者增加分区间的网络通信负担。因此,另一种分布式方法是子库。借助图建模,节点根据业务需求和查询类型分布在不同的库中,最大限度地减少跨库网络传输。不同库中的数据通过联邦查询来实现。

图形模型

在基于图的数据模型中,两种最常见的方法是资源描述框架(RDF)和标记属性图(LPG)。

无线电测向

RDF是W3C组织指定的标准。它使用Web标识符(URIs)来标识事物,并通过属性和属性值来描述资源。根据RDF的定义:

资源是任何可以有URI的东西,比如“http://www . w3school . com . cn/rdf”;

属性是有名称的资源,如“作者”或“主页”;

一个属性值就是一个属性的值,比如“Did”或者“http://www.w3school.com.cn”(请注意一个属性值可以是另一个资源)。

我们来看看RDF是如何描述“西湖是杭州的一个旅游景点”这一事实的(见图4)。

图4 RDF示例

RDF图的查询语言是SPARQL。如果要问“杭州有哪些旅游节点?”,使用SPARQL的查询如下:

前缀ns:http://kg.com/ns/trel#精选?placeWHERE {?地点ns:地点ns:杭州。地点ns:举例ns:旅游景点。}液化石油气

在LPG属性图模型中,数据对象被表示为节点(具有一个或多个标签)、关系和属性。让我们用下面的例子来说明(见图5)。

图5是关于电影的个人偏好的属性图。

在图5中:

节点/顶点是对象或实体的抽象,可以是人、导演、电影和演员等抽象。节点可以有一个或多个标签。比如代表张艺谋的节点,可以有个人、导演、演员等标签。

节点的属性。节点的属性为节点提供了丰富的语义。根据顶点所代表的类型,每个顶点可以有不同的属性,比如以“人”为顶点,属性可以是“姓名”和“性别”。

边缘/关系。边连接两个节点或同一个节点(指向自己的边),边可以是有向的,也可以是无向的。边可以有类型,比如连接“李连杰”和“英雄”的边的类型是“主演”。

边的属性。类似于顶点的属性,每条边也可以有属性。比如连接“李连杰”和“英雄”的边,具有“角色”属性,其值为“无名”。

与RDF相比,LPG更容易理解,建模更灵活,因为它可以在节点和边上定义丰富的属性。

图形查询语言

应该说,关系数据库在过去半个世纪的成功,离不开SQL查询语言的标准化。目前,图形查询语言(GQL)的标准化仍在进行中,其核心语法和特性基于Secondary的Cypher、PGQL和Oracle的GCORE框架。

从查询语言本身来看,主要有两大类:

声明性的(Declarative)。声明式查询语言只要求用户描述要达到的目标,查询引擎分析查询语句,生成查询计划,然后执行。SQL是一种声明式查询语言。Cypher是图形数据库领域最流行的声明式查询语言。

祈使(命令式)。命令式查询语言要求用户描述具体的操作步骤,然后由数据库执行。Gremlin是图形数据库领域最流行的(近似)命令式查询语言。

从未来的发展趋势来看,声明式查询语言因其简单易懂、学习门槛低、易于普及等特点,将成为主流的图形查询语言。智能优化的查询执行引擎将成为衡量图数据库技术优势的关键。

图形分析

在计算机科学领域,图算法是一个重要的算法类别,常用于解决复杂问题。你应该还记得“树的遍历”(前序,中序,后序等。)就是你在数据结构或者软件开发相关课程中会学到的。这是一个典型的图算法。一些成熟的图形数据库内置了图形算法,提供图形数据的高级分析功能。

最短路径搜索

最短路径是图计算中最常见的问题之一,通常在解决以下应用场景时会发现:

找到两个地理位置之间的导航路径;

在社交网络分析中,计算人与人之间的距离,“最短”是基于路径之上的距离和代价,比如:最小跳数;

Dijkstra算法:带边权的最短路径;

A*算法:基于启发式规则的最短路径;

k条最短路径。

计算范围包括:

节点对之间;

从单个起点到图中所有其他节点;

在整个图中的所有节点对之间。

此外,最小生成树、随机漫步等图遍历算法也属于这一类。

社区检测

“物以类聚,人以群分”,形象地描述了网络的一个重要特征:群聚。群体也叫社区、群体、团体。社区的形成和演化是图分析和研究的另一个重要领域,因为它有助于我们理解和评价群体行为,研究新出现的现象。

社区检测算法是对图中的节点进行分组和组装(见图6):同一集合中的节点之间的边(代表交互/连接)比属于不同集合的节点之间的边多。从这个意义上说,我们认为他们有更多的共同点。社区检测可以揭示节点集群、孤立组和网络结构。在社交网络分析中,这些信息有助于推断有共同兴趣的人。在产品推荐中,可以用来查找同类产品。在自然语言处理/理解(NLP/NLU)中,它可以用来对文本内容进行自动分类。社区检测算法也用于生成网络的可视表示。

图6中节点之间的边密度反映了节点之间的相关性。

有助于推断有共同兴趣的人。在产品推荐中,可以用来查找同类产品。在自然语言处理/理解(NLP/NLU)中,它可以用来对文本内容进行自动分类。社区检测算法也用于生成网络的可视表示。

中心算法

在图论和网络分析中,中心性指数标识图中最重要的顶点。它的应用范围很广,包括识别社交网络中最有影响力的人,互联网或城市网络中的关键基础设施节点,以及疾病的超级传播者。

最成功的中心性算法是“PageRank”。这是谷歌搜索引擎背后的网页排名算法的核心。页面排名不仅计算页面本身的链接,还评估链接到它的其他页面的影响力。页面的重要性越高,信息源的可靠性就越高。应用到社交网络上,这个方法可以简单解释为“认识我的人越重要,我就越重要”。这有意义吗?

相似性算法

相似度描述的是两个节点和更复杂的子图结构是否属于同一类别,或者它们有多相似。

图/网络相似性度量有三种基本方法:

结构对等;

自守等价;

正则等价。

另一种是将节点转换成n维向量(x 1,x 2,…x n)并“投影”到一个n维空空间,然后计算节点间的夹角或距离来度量相似度。这种变换的方法叫做“嵌入”,变换的过程叫做“图形表示”。如果算法自动得到最佳变换结果,那么这个过程就叫做“图形表示学习”。基于图的学习是近年来人工智能领域非常热门的方向,广泛应用于欺诈检测、智能推荐、自然语言处理等诸多领域。

图形可视化

“一图胜千言”这句话是对图形可视化最贴切的描述。图形可视化直观智能地展现数据之间的结构和关联,可以看到以前在表格或图表中看不到的东西。

2019年,当新冠肺炎开始在全球肆虐时,一群来自二级数据库社区的成员整合了几个异构的生物医学和环境数据集(https://github.com/covid-19-net/covid-19-community),建立了一个关于新冠肺炎的知识图谱,以帮助研究人员分析宿主、病原体、环境和病毒之间的相互作用。图7是知识图谱的部分可视化结果,图谱最左侧是病毒爆发的地理位置的子图,包括国家、地区和城市;中间的绿色部分是流行病学子图,包括病毒株、病原体和宿主生物的信息。病例和菌株分别与报告和发现它们的地点相关联。右边紫色的部分是生物子图,代表生物、基因组、染色体、变异体等等。

图7新冠肺炎知识地图

图形数据可视化建立了事物之间关系的最直观展示,使原本不明显甚至淹没在数据中的重要特征显现出来,成为新的认知。

图数据库的未来展望

在图形数据库出现和兴起的十多年里,它已经成功地应用于各个领域,并产生了许多创新的解决方案。

在社交平台的“网络水军”识别中,通过分析用户关系图的特征,结合传统的基于用户行为和用户内容的发现方法,可以有效提高预测的准确性和鲁棒性。

在金融领域,图形和图形分析帮助机构更高效地发现异常关联交易,以赢得反洗钱战争。

在电力和电信行业,图形数据库有助于管理复杂庞大的设备和线路网络,并及时分析故障根源和估计故障影响。

在制造业、科研、医学等领域,图数据库被广泛用于存储和查询知识图谱,成为大数据管理、数据分析和价值挖掘,乃至人工智能技术等领域的重要支撑。

在可预见的未来,图形数据库和人工智能技术的结合将带来更多的创新和飞跃。图形数据库至少可以在以下四个方面帮助提高人工智能的能力。

首先是知识地图,它为决策支持提供领域相关的知识/上下文,并有助于确保答案适合这种特定的情况。

其次,图提供了更高的处理效率,所以用图优化模型,加速学习过程,可以有效提升机器学习的效率。

第三,基于数据关系的特征提取分析可以识别数据中最具预测性的元素。基于数据中发现的强特征的预测模型具有更高的准确性。

第四,图提供了保证AI决策透明的方法,使得通过AI得到的结论更具可解释性。人工智能和机器学习有很大的应用潜力,而图形释放了这种潜力。这是因为图数据库技术支持领域相关知识和相关数据,使得AI的适用范围更加广泛。

此外,近年来,部署在云端的图形数据库(SaaS/DaaS)已经成为另一种发展趋势。国内很多厂商都推出了自主研发的云图数据库产品,如百度的HugeGraph、阿里的GDB、腾讯的TGDB、华为的GES图计算引擎等。

就整体趋势而言,我们可以预见,在大数据时代,数据的匮乏不再是最大的挑战。我们渴望的是挖掘数据价值的能力,而数据的价值很大一部分在于数据之间的相关性。图形数据库和图形分析作为处理相关数据最有效的技术和方法,必将继续大放异彩,谱写数据库应用的新篇章。

关于作者:

Neo4j亚太地区售前和技术总监,有二十余年IT从业经验。PMP、IEEE和ACS会员,PMP认证专家、欧盟GDPR认证专家、Neo4j数据库和图数据科学认证专家,并拥有金融市场(投资和交易)高级学位。

新编程器001-004已全部上市。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论