本文讨论图数据库的定义,以及考察图数据库的标准。
什么是图数据库
在前文中,我们详细介绍了图数据的特性。不难发现,图数据是一种极其适合表达实体间复杂关系的数据形式。专门用来存储和处理这种图数据的数据库系统被称为图数据库。
在图数据库中,数据以图(Graph)的形式组织,包含节点(Node)和边(Edge)。在这个结构中,节点代表实体,而边则表示节点间的关系。
因此,图数据库不仅仅是一种数据存储形式,更是一种强大的数据处理和分析工具,为各种复杂关系的数据提供了高效、灵活的解决方案。
如何考察图数据库
除了要满足一般数据库的基本要求,如事务ACID、可扩展性、安全性等,图数据库还需满足其他一些方面的要求。
存储是否原生
原生图存储指的是数据库的存储引擎经过专门的设计和优化,能够高效地存储和管理图中的节点和边,以满足复杂查询和分析(如遍历、路径查找、图算法等)的性能需求。
原生图存储引擎是针对节点和边数据设计的,而不是复用关系型数据库中的表格存储,因此原生图存储引擎通常具有独特的数据结构和算法。
![](https://img.ultipa.cn/draw/draw_e4766dec9b83420c916c8bb413965f45.jpg?v='1698310465403')
需要注意,并不是所有的“图数据库”产品都是真正的原生图数据库。一般来讲,那些仍基于关系型数据库或NoSQL数据库(如键值存储、文档数据库)等构建的产品,虽然能通过扩展功能或插件实现的图计算功能、图处理框架、图库层等,由于在内部实现上不完全符合原生图存储的标准,它们在查询性能、灵活性等方面和真正的图数据库存在较大差距。
算法是否正确
除了要面对分布式、并发操作、事务机制等带来的计算正确性问题的挑战,图数据库还必须确保其图查询、图算法等计算过程是正确无误的。
图数据库支持的图算法,如最短路径、K步邻居、连通性检测和社区划分等,其内部实现相当复杂。此外,图结构可能涉及到各种边界条件,如环路、孤点等,处理这些情况需要特殊的算法支持,如果处理不当,可能导致计算错误。
![](https://img.ultipa.cn/img/2023-10-26-17-41-13-algo-cloud.png)
图算法的正确性需要通过精心的算法设计和严格的算法测试来保证,同时图数据库引擎自身的计算能力也需要不断提高,以保证图数据库在各种复杂情境下的计算结果准确性。
结果是否可视化
除了基本操作的可视化,如图建模、数据导入、算法执行和用户管理等,图数据库应该特别关注提升查询结果的可视化能力。
图数据本身是一种比传统表格更高维的数据形式,人脑对于高维数据的直观感知和处理速度天然超越了机器。因此,图数据库的真正价值在于能够提供以图的方式呈现计算结果,使人们能够直观地洞察数据。
图数据库应该能够将查询或分析结果以2D或3D图的形式展现出来,其中节点可以用形状或图标表示,边则可以用线条或箭头表示。节点和边的不同颜色、大小、形状可以表示不同的信息,帮助用户更直观地理解和分析数据。这种可视化能力不仅提高了用户对数据的理解,也使得复杂关系和模式更容易被发现和分析。
![](https://img.ultipa.cn/img/2023-10-26-17-47-32-visualization.png)