Neo4j - 教程

  • 简述

    Neo4j 是流行的图形数据库和密码查询语言 (CQL) 之一。Neo4j 是用 Java 语言编写的。本教程介绍了 Neo4j、Java 与 Neo4j 以及 Spring DATA 与 Neo4j 的基础知识。本教程分为 Neo4j Introduction、Neo4j CQL、Neo4j CQL Functions、Neo4j Admin 等部分。每个部分都包含相关主题和简单实用的示例。
    Neo4j 是使用 Java 技术开发的世界领先的开源图形数据库。它具有高度可扩展性和无模式 (NoSQL)。
    本教程是为初学者准备的,以帮助他们了解 Neo4j 的基本到高级概念。它将让您对 Neo4j 有足够的了解,从那里您可以将自己带到更高水平的专业知识。
    在继续本教程之前,您应该具备数据库、图论、JavaSpring 框架的基本知识。
  • 什么是图形数据库?

    图是一组对象的图形表示,其中一些对象对通过链接连接。它由两个元素组成——节点(顶点)和关系(边)。
    图数据库是用于以图的形式对数据进行建模的数据库。在这里,图的节点描述了实体,而关系描述了这些节点的关联。

    流行的图数据库

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

    为什么选择图数据库?

    如今,大部分数据以不同对象之间的关系的形式存在,更多的时候,数据之间的关系比数据本身更有价值。
    关系数据库存储高度结构化的数据,这些数据具有多个存储相同类型数据的记录,因此它们可用于存储结构化数据,并且它们不存储数据之间的关系。
    与其他数据库不同,图数据库将关系和连接存储为一等实体。
    与其他数据库相比,图数据库的数据模型更简单,并且可以与 OLTP 系统一起使用。它们提供事务完整性和操作可用性等功能。

    RDBMS 与图数据库

    以下是比较关系数据库和图形数据库的表格。
    序号 关系型数据库管理系统 图数据库
    1 图表
    2 节点
    3 列和数据 属性及其值
    4 约束 关系
    5 加入 遍历
  • Neo4j 的优势

    以下是 Neo4j 的优点。
    • 混合数据模型− Neo4j 提供灵活简单但功能强大的数据模型,可根据应用和行业轻松更改。
    • 实时数据集− Neo4j 提供基于实时数据的结果。
    • 高可用− Neo4j 对于具有事务保证的大型企业实时应用程序高度可用。
    • 连接和半结构化数据− 使用 Neo4j,您可以轻松地表示连接和半结构化数据。
    • 易于表示关系− 与其他数据库相比,使用 Neo4j,您不仅可以表示而且还可以轻松地检索(遍历/导航)连接的数据。
    • CQL− Neo4j 提供了一种声明式查询语言,使用 ascii-art 语法直观地表示图形。这种语言的命令是人类可读的格式,非常容易学习。
    • 没有连接− 使用 Neo4j,它不需要复杂的连接来检索连接/相关数据,因为无需连接或索引即可轻松检索其相邻节点或关系详细信息。
  • Neo4j 的特点

    以下是 Neo4j 的显着特点 -
    • Data model (flexible schema)− Neo4j 遵循名为原生属性图模型的数据模型。在这里,图包含节点(实体),这些节点相互连接(由关系描述)。节点和关系将数据存储在称为属性的键值对中。
      在 Neo4j 中,不需要遵循固定的模式。您可以根据需要添加或删除属性。它还提供模式约束。
    • ACID 属性− Neo4j 支持完整的 ACID(原子性、一致性、隔离性和持久性)规则。
    • 可扩展性和可靠性− 您可以通过增加读/写次数和容量来扩展数据库,而不会影响查询处理速度和数据完整性。Neo4j 还支持replication为了数据的安全性和可靠性。
    • 密码查询语言− Neo4j 提供了一种强大的声明式查询语言,称为 Cypher。它使用 ASCII-art 来描绘图形。Cypher 易于学习,可用于创建和检索数据之间的关系,而无需使用像 Join 这样的复杂查询。
    • 内置web应用程序− Neo4j 提供了一个内置的Neo4j BrowserWeb应用程序。使用它,您可以创建和查询图形数据。
    • 驱动− Neo4j 可以与 −
      • REST API 可与 Java、Spring、Scala 等编程语言一起使用。
      • 与 UI MVC 框架(例如 Node JS)一起使用的 Java 脚本。
      • 它支持两种 Java API:Cypher API 和 Native Java API 来开发 Java 应用程序。除了这些,您还可以使用其他数据库,例如 MongoDB、Cassandra 等。
    • 索引− Neo4j 使用 Apache Lucence 支持索引。