图数据库 - 维基百科:在计算机科学中,图数据库(英语:graph database,GDB)是一个使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。该系统的关键概念是,它直接将存储中的数据项,与数据节点和节点间表示关系的的集合相关联。这些关系允许直接将存储区中的数据链接在一起,并且在许多情况下,可以通过一个操作进行检索。图数据库将数据之间的关系作为优先级。查询图数据库中的关系很快,因为它们永久存储在数据库本身中。可以使用图数据库直观地显示关系,使其对于高度互连的数据非常有用。

图数据库是一种非关系型数据库,数据库的局限性。图模型明确地列出了数据节点之间的依赖关系,而关系模型和其他 NoSQL 数据库模型则通过隐式连接来链接数据。图数据库从设计上,就是可以简单快速地检索难以在关系系统中建模的复杂层次结构的。图数据库与 20 世纪 70 年代的网络模型数据库相似,它们都表示一般的图,但是网络模型数据库在较低的抽象层次上运行,并且不能轻松遍历一系列边。

图数据库的底层存储机制可能各有不同。有些依赖于关系引擎并将图数据“存储”到表中(虽然表是一个逻辑元素,但是这种方法在图数据库、图数据库管理系统和实际存储数据的物理设备之间施加了另一层抽象)。另一些则使用键值存储或面向文档的数据库进行存储,使它们具有固有的 NoSQL 结构。大多数基于非关系存储引擎的图数据库还添加了标记属性的概念,这些标记或属性本质上是具有指向另一个文档的指针的关系。这样就可以对数据元素进行分类,以便于集中检索。

从图数据库中检索数据需要 SQL 之外的查询语言,SQL是为了处理关系系统中的数据而设计的,因此无法“优雅地”处理遍历图。截至 2017 年,没有一个像 SQL 那样通用的图查询语言,通常都是仅限与一个产品的。不过,已经有一些标准化的工作,使得 Gremlin、SPARQL 和 Cypher 成为了多供应商查询语言。除了具有查询语言接口外,还可以通过应用程序接口(API)访问一些图数据库。

图数据库与图计算引擎不同。图数据库是转换关系 OLTP 数据库的技术。而图计算引擎在 OLAP 中用于批量分析。由于主要技术公司在使用专有图数据库方面的成功以及开源图数据库的引入,图数据库在 2000 年代引起了相当大的关注。

上面部分引用了维基百科对图数据库的词条来讲解何为图数据库,而本文整理于图数据库 Nebula Graph 交流群中对图数据库的零碎知识,作为对图数据库知识的补充。本文分为小知识及 Q&A 两部分。

本文主目录

  • 小知识

    • 图数据库兴起的契机

    • 图数据库存储方式 —— 基于内存存储 vs 基于分布式 kv 存储 

    • 一种图数据库存储层的设计探讨

    • 图结构的可视化与 GIS 数据的可视化

  • Q&A 提问回答

    • 图数据库计算存储分离设计及该设计模式的考量原因

    • 怎么理解图数据库顶点和标签

    • Nebula 如何处理 ID 冲突问题

    • Nebula Graph 和 Tiger Graph 的区别

    • 图数据库 0 标签的意义

    • 大家怎么看「图数据库要有索引」这个问题?

    • 在知识图谱场景下计算、存储及副本一致性问题

小知识

学习图数据库的起手式——了解图数据库兴起的契机。