Neo4j - 概述



Neo4j 是全球领先的开源图数据库,使用 Java 技术开发。它具有高度可扩展性和无模式特性(NoSQL)。

什么是图数据库?

图是一种对象集合的图形表示,其中某些对象对由链接连接。它由两个元素组成 - 节点(顶点)和关系(边)。

图数据库是一种用于以图的形式建模数据的数据库。在这里,图的节点表示实体,而关系表示这些节点的关联。

流行的图数据库

Neo4j 是一种流行的图数据库。其他图数据库包括 Oracle NoSQL 数据库、OrientDB、HypherGraphDB、GraphBase、InfiniteGraph 和 AllegroGraph。

为什么要使用图数据库?

如今,大部分数据都以不同对象之间关系的形式存在,而且很多时候,数据之间的关系比数据本身更有价值。

关系数据库存储高度结构化的数据,这些数据包含存储相同类型数据的多个记录,因此它们可用于存储结构化数据,但它们不存储数据之间的关系。

与其他数据库不同,图数据库将关系和连接作为一等实体存储。

图数据库的数据模型比其他数据库更简单,并且可以与 OLTP 系统一起使用。它们提供诸如事务完整性和操作可用性等功能。

RDBMS 与图数据库

下表比较了关系数据库和图数据库。

序号 RDBMS 图数据库
1
2 节点
3 列和数据 属性及其值
4 约束 关系
5 连接 遍历

Neo4j 的优势

以下是 Neo4j 的优势。

  • 灵活的数据模型 - Neo4j 提供了一个灵活、简单且功能强大的数据模型,可以根据应用程序和行业轻松更改。

  • 实时洞察 - Neo4j 提供基于实时数据的成果。

  • 高可用性 - Neo4j 对于大型企业实时应用程序具有很高的可用性,并提供事务保证。

  • 连接和半结构化数据 - 使用 Neo4j,您可以轻松地表示连接和半结构化数据。

  • 轻松检索 - 使用 Neo4j,与其他数据库相比,您不仅可以表示连接数据,还可以更轻松地更快地检索(遍历/导航)连接数据。

  • Cypher 查询语言 - Neo4j 提供了一种声明式查询语言,可以使用 ASCII 艺术语法直观地表示图形。此语言的命令采用人类可读格式,非常易于学习。

  • 无需连接 - 使用 Neo4j,无需复杂的连接来检索连接/相关数据,因为它很容易检索其相邻节点或关系详细信息,而无需连接或索引。

Neo4j 的特性

以下是 Neo4j 的一些显著特性 -

  • 数据模型(灵活模式) - Neo4j 遵循名为原生属性图模型的数据模型。在这里,图包含节点(实体),这些节点彼此连接(由关系表示)。节点和关系以键值对的形式存储数据,称为属性。

    在 Neo4j 中,无需遵循固定模式。您可以根据需要添加或删除属性。它还提供模式约束。

  • ACID 属性 - Neo4j 支持完整的 ACID(原子性、一致性、隔离性和持久性)规则。

  • 可扩展性和可靠性 - 您可以通过增加读/写次数和数据量来扩展数据库,而不会影响查询处理速度和数据完整性。Neo4j 还支持复制以确保数据安全性和可靠性。

  • Cypher 查询语言 - Neo4j 提供了一种功能强大的声明式查询语言,称为 Cypher。它使用 ASCII 艺术来描述图形。Cypher 易于学习,可用于创建和检索数据之间的关系,而无需使用诸如连接之类的复杂查询。

  • 内置 Web 应用程序 - Neo4j 提供了一个内置的Neo4j 浏览器 Web 应用程序。使用它,您可以创建和查询您的图形数据。

  • 驱动程序 - Neo4j 可以与 -

    • REST API 结合使用,以使用 Java、Spring、Scala 等编程语言。

    • JavaScript 结合使用,以使用 Node JS 等 UI MVC 框架。

    • 它支持两种 Java API:Cypher API 和原生 Java API 以开发 Java 应用程序。除此之外,您还可以使用其他数据库,例如 MongoDB、Cassandra 等。

  • 索引 - Neo4j 使用 Apache Lucene 支持索引。

广告