什么是图数据库

Neo4j 图数据库以 节点关系属性 的形式存储数据,而不是以表或文档的形式。这意味着您可以像在白板上勾勒想法一样来组织数据。

由于图数据库不受预定义模型的限制,因此在处理它们时,您可以采取更灵活的方法和策略。

sample cypher
图 1. 使用 Cypher 匹配模式和关系的直观方式

工作原理

图数据库通过节点和关系进行结构化。

节点是图中的实体,它们可以:

  • 被标记上 标签,以表示它们在领域中的不同角色(例如:Person)。

  • 包含任意数量的 键值对 作为属性(例如:name)。

  • 索引 并受 约束 限制。

关系提供了两个节点之间的命名连接(例如:Person - LOVES - Person),它们:

  • 必须始终有一个起始节点、一个结束节点,且只能有一种类型。

  • 必须有方向。

  • 可以像节点一样拥有属性。

  • 节点可以拥有多种类型的多个关系,而不会牺牲性能。

总之,节点和关系是一种高效且灵活的数据存储方式,因为它们允许您:

  • 在大图中创建深度和广度遍历。

  • 将数据库扩展到数十亿个节点。

  • 设计能够随时间调整的灵活属性图数据模型。

为什么要使用图数据库

项目通常涉及大量复杂数据,而图数据库可以成为强大的工具。

还有其他将数据存储为对象和连接的方法,例如关系数据库。然而,关系数据库使用计算开销较大的 JOIN 操作或交叉查找,这些操作通常绑定在僵化的数据模型上。

图数据库不使用 JOIN。相反,关系是与数据元素(节点)一起以更灵活的格式原生存储的,这使得数据遍历能够被优化,并且每秒可以访问数百万个连接。

此外,许多日常挑战和任务都可以从图的角度来看待,因为它允许您:

  • 导航深层层级结构。

  • 寻找遥远项目之间的隐藏连接。

  • 发现项目之间的相互关系。

如何使用

无论是社交网络还是道路网络,所有网络都可以结构化为相互关联的关系图。很多时候,项目的问题和挑战围绕的是元素之间的关系,而不是元素本身(例如:如何从 A 到 B,而不是 A 是什么以及 B 是什么)。因此,图可以应用于社会的许多领域以及各种各样的项目中。

如今,Neo4j 被许多初创公司、教育机构和大型企业广泛使用,涵盖金融服务、政府、能源、科技、零售和制造等多个领域。图在帮助他们开发创新技术、进行业务管理、获取洞察和增加收入以及全面提高效率方面取得了成功。

您可以在 Neo4j 官网上找到有关用例的更多信息。

持续学习

如果您想对图数据库有更好、更深入的了解,可以阅读有关 图数据库概念 的更多信息,或报名参加 GraphAcademy 的 Neo4j 基础课程

术语表

label (标签)

将节点标记为命名和索引子集的成员。一个节点可以分配零个或多个标签。

labels (标签)

标签将节点标记为命名和索引子集的成员。一个节点可以分配零个或多个标签。

node (节点)

节点代表图数据模型中的实体或离散对象。节点可以通过关系连接,通过属性保存数据,并按标签进行分类。

nodes (节点)

节点代表图数据模型中的实体或离散对象。节点可以通过关系连接,通过属性保存数据,并按标签进行分类。

relationship (关系)

关系代表图数据模型中节点之间的连接。关系连接源节点和目标节点,通过属性保存数据,并按类型进行分类。

relationships (关系)

关系代表图数据模型中节点之间的连接。关系连接源节点和目标节点,通过属性保存数据,并按类型进行分类。

property (属性)

属性是用于在节点和关系上存储数据的键值对。

properties (属性)

属性是用于在节点和关系上存储数据的键值对。

cluster (集群)

一种跨多台服务器协同工作的 Neo4j DBMS,旨在提高容错能力和/或读取可扩展性。集群上的数据库可以配置为在集群中的服务器之间进行复制,从而实现读取可扩展性或高可用性。

clusters (集群)

一种跨多台服务器协同工作的 Neo4j DBMS,旨在提高容错能力和/或读取可扩展性。集群上的数据库可以配置为在集群中的服务器之间进行复制,从而实现读取可扩展性或高可用性。

graph (图)

一组节点的逻辑表示,其中一些节点对由关系连接。

graphs (图)

一组节点的逻辑表示,其中一些节点对由关系连接。

schema (模式)

为节点和关系指定的属性存在性和数据类型。

schemas (模式)

为节点和关系指定的属性存在性和数据类型。

[[database schema]]database schema (数据库模式)

为节点和关系指定的属性存在性和数据类型。

indexes (索引)

提高数据库读取性能的数据结构。阅读有关支持的索引类别的更多信息

indexed (已索引)

提高数据库读取性能的数据结构。阅读有关支持的索引类别的更多信息

constraints (约束)

约束是一组数据建模规则,用于确保数据一致且可靠。查看 Cypher 中有哪些可用约束

data model (数据模型)

数据模型定义了信息在数据库中如何组织。良好的数据模型将使查询和理解数据变得更容易。在 Neo4j 中,数据模型具有图结构。

data models (数据模型)

数据模型定义了信息在数据库中如何组织。良好的数据模型将使查询和理解数据变得更容易。在 Neo4j 中,数据模型具有图结构。