什么是图数据库

Neo4j 图数据库将数据存储为 节点关系属性,而不是存储在表或文档中。这意味着您可以以类似于在白板上草拟想法的方式组织数据。

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

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

工作原理

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

节点是图中的实体,可以

  • 标记为 标签,表示它们在域中的不同角色(例如,Person)。

  • 作为属性,保存任何数量的 键值对(例如,name)。

  • 索引 和受 约束 约束。

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

  • 必须始终具有起始节点、结束节点和正好一种类型。

  • 必须有方向。

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

  • 节点可以拥有多种类型和各种类型的多个关系,而不会影响性能。

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

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

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

  • 设计灵活的属性图数据模型,这些模型可以随着时间的推移而适应。

为什么要使用图数据库

项目通常会处理大量复杂数据,而图数据库可以成为一个强大的工具。

还有其他方法可以将数据存储为对象和连接,例如关系型数据库。但是,关系型数据库使用计算上昂贵的 JOIN 操作或交叉查找,这些操作通常与严格的数据模型绑定在一起。

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

此外,许多日常挑战和任务可以从图的角度进行查看,因为它允许您

  • 导航深层层次结构。

  • 查找远距离项目之间的隐藏连接。

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

如何使用

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

如今,Neo4j 经常被 初创企业、教育机构和大型企业 用于各种领域,包括金融服务、政府、能源、技术、零售和制造业。图在帮助他们开发创新的新技术、业务管理、洞察和收入再生以及提高整体效率方面取得了成功。

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

继续学习

如果您想更好地更深入地了解图数据库,您可以阅读更多关于 图数据库概念 的内容,或者报名参加 GraphAcademy 关于 Neo4j 基础 的课程。

词汇表

标签

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

标签

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

节点

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

节点

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

关系

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

关系

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

属性

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

属性

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

集群

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

集群

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

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

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

模式

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

模式

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

[[database schema]]数据库模式

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

索引

改善数据库读取性能的数据结构。 详细了解支持的索引类别

索引

改善数据库读取性能的数据结构。 详细了解支持的索引类别

约束

约束是一组数据建模规则,确保数据一致性和可靠性。 查看 Cypher 中可用的约束