数据库 频道

不需要“存储图片“的数据库?你对图数据库有不少误解

什么是图数据库?有人可能会认为是存储图片的数据库,几年前图数据库初创公司在接触部分投资人时也要解释一番。虽然近几年图数据库受到开发者的关注,被资本热捧,但是图数据库仍然相对小众,很多人可能对其还不是很了解,有图数据库厂商反映他们在向客户推荐使用图数据库产品时,客户还会以“我们不需要存储图片的数据库”为由而拒绝。

什么是图数据库?

用一句话来说:图数据库是基于图论实现的一种NoSQL数据库。这里的图是Graph,指的是图这种数据结构,并不是图片Image。

(Graph,来自网络)

来源:DB-Engines官网,2023.4

根据DB-Engines的数据,图数据库是近十年来最受关注的数据库类别,目前DB-Engines收录了39款图数据库。

图数据库以图论为理论基础,使用图模型,将关联数据的实体作为顶点(vertex)存储,关系作为边(edge)存储,解决了(关系数据库中)数据复杂关联(查询)带来的严重随机访问问题。

与关系型数据库相比,图数据库在结构上不那么僵硬,它允许节点拥有大量的边,也就是说,对一个节点可以拥有的关系数量没有限制。此外,每条边可以有多个属性定义其特征。属性可以是名称、日期、识别码、基本描述符或其他信息,总之是任何可以描述节点本身的东西。节点通过边连接,边可以是有向的,也可以是无向的。像数学图论中一样,无向边是双向的。对于每个节点可以有多少条边,一条边可以有多少个特征,都没有严苛的限制,也没有一定之规。

图数据库有两种常用的图模型:属性图和RDF图。二者都是由一系列点(顶点)以及这些点之间的连接(边)构成的集合,但也有区别。

具体来看,属性图是一种数据结构,用于表示对象之间的关系和属性。它通常由节点和边构成,其中节点代表对象,边代表它们之间的关系,节点和边都可以带有各种属性 。RDF的英文全称为Resource Description Framework,即资源描述框架,符合一系列 W3C(万维网联盟)标准,由一条边连接的两个节点形成一个主语-谓词-宾语的陈述,也称为三元组,节点和边上不包含属性信息,其优点是具有灵活性和可扩展性。有专家指出,属性图每个节点实际对应一个表,包含属性,比如一个人的名字、年龄等这些属性。而RDF每个描述属性都是节点,比如名字是一个节点,年龄是另外一个节点,由于把每个属性都变成独立的节点,RDF的数据量要比属性图大,容易造成超级节点,在处理大规模数据时可能会出现性能问题。

目前市场上支持属性图的图数据库居多,不过用户可能较难区分他们之间的差异。根据Gartner 2022《图数据库管理系统市场指南》,数据和分析专业人员往往难以区分不同的图实现模式。然而,对于图数据库的选择,传统的RDF和属性图支持之间的差异正变得不如支持企业就绪的功能重要。

什么是图论?

图论(Graph Theory)是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线(边)表示相应两个事物之间的关系。

图论自诞生至今已有近300年的历史,1707年出生的瑞士数学家欧拉是图论的创始人,1738年,他解决了柯尼斯堡问题,由此图论诞生。

1969年,Edsger W.Dijkstra发表了一篇关于图论中最短路径算法(Dijkstra算法)的著名论文,为图数据库的发展奠定了理论基础。

都说数据库是基础软件皇冠上的明珠,诚不我欺。图论(Graph Theory)是研究图结构的数学分支,和群论、拓扑学等其他分支有着密切关系,图数据库是这些数学理论在计算机方面的一种工程实现。

图数据库有哪些特点?

作为NoSQL的一种,图数据库与关系型数据库最大的区别就是图与表的差别,图数据库用点和边表达数据之间的关系,更专注于对象之间的关联,传统的关系型数据库是二维表,在结构化的表达方面更有优势。

  • 灵活的结构和模型。通过图数据库可以建立更简单易懂的模型,可以把任何的对象之间用任何的关系连接起来,而这些模型是其他NoSQL数据库和传统关系型数据库难以建立的。

  • 对关联数据快速查询。关系型数据库用于存储“关系”数据的效果并不好,其查询复杂、缓慢、超出预期,而图数据库可以弥补该缺陷。图数据库更专注于对象之间的关联,特别是深度关联。

    从事图数据库行业的业内人士认为,图数据库用点、边表达数据之间的关系,是更自然的方式。在复杂关联查询,尤其是多度查询方面有优势。关系型数据库达到一定深度的查询其性能远不如图数据库(如下图)。

来源:中国信通院《图数据库白皮书》

  • 独特的查询语言:关系型数据库有自己的查询语言SQL,图数据库也有自己的查询语言,通常先有图模型然后有对应的图查询语言。比如Neo4j的Cypher,以及它开源的openCypher,很多图数据库产品支持openCypher或基于其优化扩展,也有不少推出了自己的查询语言,如TigerGraph的GSQL等。此外,还有SPARQL查询语言(RDF图),以及Apache Tinkerpop框架对应的查询语言Gremlin。

    目前图查询语言还没有形成标准,不少人认为该标准的短缺减缓了图数据库的使用,不过这种情况可能很快得到改善,2018年,ISO/IEC 联合技术委员会提出推行图查询国际标准语言 ISO GQL 的提案,图数据库厂商也正在积极推进该标准制定,预计会在2023年底或2024年初发布。

  • 通常来讲图数据库需要一些图算法的支持来查询处理数据,比如图遍历、寻路算法(如Dijkstra 最短路径、最小生成树等)、链接预测等。

  • 面向未来智能时代,图数据库也大有可为。图和图数据库技术管理关联数据并定义关系。通过应用领域相关知识增强AI的性能,图技术提供了一种有效的技术手段来实现复杂AI应用程序的开发。比如与领域知识结合的知识图谱,在多个行业都有落地。当然图数据库的特点还有很多,而且图数据库还在不断演进中。

据Gartner预测,“到2025年,图技术在数据和分析创新中的占比将从2021年的10%上升到80%,促进整个企业机构的快速决策”“包括图数据库管理系统在内的图技术市场将增长到32亿美元,复合年增长率为28.1%”。

图数据库是一个新的数据库类别,方兴未艾,还有很多值得探索的地方。

1
相关文章