图数据库是一种以图形式(而非表格或文档)存储、查询和管理数据的数据库。图数据库以直观的方式组织数据,与我们的自然思维方式相契合。该结构使得查询和分析这些高度关联的数据更加简单高效。
什么是图
嬴图数据库的一个实例可以托管一或多个图,每个图代表一个由节点和边互相连接的唯一数据集或域。
图元素
图包含以下主要元素:
- 点(或顶点),代表真实世界中的实体(如
User
,Book
,Country
)。 - 边,代表实体之间的关系(如
rate
,purchased
,locate_in
)。
点的系统属性_id
(字符串类型)是点的唯一识别符。每条边有一个起点和一个终点,边的系统属性_from
和_to
分别存储了起、终点的_id
,并定义了边的方向。
图结构
创建图前,需根据具体场景设计合适的图结构(或图模型)。
图结构由以下元素定义:
- 类型(或标签,Schema),用于描述点和边的具体类型。每个点或边只有一种类型。
- 属性与点和边的类型相关联,用于存储点和边的属性。每条属性都有一个特定类型,用于定义属性值的性质。例如,
User
点可能有属性name
(字符串类型)和属性age
(int32类型)、
图结构可随着时间的推移而演变,并且可以对其进行灵活调整。
路径
图中的路径是由奇数个相连的图元素组成的序列。路径通常:
- 以点开始,以点结束
- 点、边交替出现
一条路径可能只包含一个点。在嬴图数据库中,默认可以重复访问路径中的点,但不可重复访问路径中的边。
图数据库的工作原理
根据此前介绍可知,图数据库由点和边组成。遍历是指从一个点出发,通过边到达另一个点,在全图导航的过程。这与关系型数据库中的JOIN操作类似。然而,由于图数据库将数据间的关系直接存储在图中,因此,图数据库遍历更为高效。特别是在需要快速探索互联的数据时,图数据库尤为适用,甚至可以支持深度遍历(深度可达5步、10步、20步或更多)。
何时使用图数据库
图数据库是一种多用途通用数据库,旨在为多种场景建模,包括但不限于金融系统、供应链管理和社交网络。涉及高度互联的数据时,图数据库的表现格外突出,这是因为点之间的关系和点数据本身同样重要。
通过在图内存储和管理数据关系,图数据库无需使用复杂耗时的表连接,即可提供优越的性能表现。此外,图数据库的高级查询功能也让表达和分析复杂的模式和连接变得更为简单。