图数据库是一种以图形式存储、查询和管理数据的数据库,而非传统的表格或文档。图数据库以直观的方式组织数据,与我们的自然思维方式相契合。该结构使得查询和分析这些高度关联的数据更加简单高效。
什么是图
嬴图数据库的一个实例可以托管一或多个图,每个图代表一个由节点和边互相连接的唯一数据集或域。
图元素

图包含以下两种元素:
- 点(或顶点),代表真实世界中的实体(如
User
,Book
,Country
)。 - 边,代表实体之间的关系(如
rate
,purchased
,locate_in
)。
点的系统属性_id
(string
类型)是点的唯一识别符。每条边有一个起点和一个终点,其系统属性_from
和_to
分别存储起点和终点的_id
。
图结构

创建图前,需根据具体场景设计合适的图结构(或图模型)。
图结构由以下元素定义:
- 类型(或标签,Schema),用于描述点和边的具体类型。每个点或边只有一种类型。例如,一个
User
点,一条rate
边。 - 属性与点和边的类型关联,用于存储点和边的属性。每个属性都有一个值类型。例如,
User
点可能有属性name
(string
类型)和age
(int32
类型)。
图结构可随着时间的推移而演变,并且可以对其进行灵活调整。
路径

图中的路径代表一段依次访问的图元素序列。路径通常:
- 以点开始,以点结束
- 点、边交替出现
一条路径可能只包含一个点。
在嬴图数据库中,路径默认可以重复访问点,但不可重复访问边。
图数据库的工作原理
在图数据库中,数据由点和边表示。图遍历是指从一个点出发,通过连接的边到达另一个点,不断在图中探索的过程。这在概念上与关系型数据库中的JOIN操作类似。然而,由于图数据库将数据间的关系直接存储在图中,遍历更为高效。尤其是在需要快速探索互联的数据时,图数据库尤为适用,能轻松支持深度遍历(可达5步、10步、20步或更多)。
何时使用图数据库
图数据库是一种多用途通用数据库,旨在为多种现实场景建模,包括但不限于金融系统、供应链管理和社交网络。在涉及高度互联的数据时,图数据库的表现格外突出,这是因为点之间的关系和点数据本身被视为同等重要。
通过在图中存储和管理数据关系,图数据库避免了传统数据库常见的复杂耗时的表连接,提供优越的性能表现。此外,图数据库的高级查询能力也让表达和分析复杂的模式和连接变得更为简单。