📜  Neo4j-概述

📅  最后修改于: 2020-11-27 06:46:21             🧑  作者: Mango


Neo4j是使用Java技术开发的世界领先的开源图形数据库。它具有高度的可伸缩性和无模式(NoSQL)。

什么是图形数据库?

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

图形数据库是用于以图形形式对数据建模的数据库。在这里,图的节点描述实体,而关系描述这些节点的关联。

流行的图形数据库

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

为什么要图数据库?

如今,大多数数据都以不同对象之间的关系形式存在,并且更经常地,数据之间的关系比数据本身更有价值。

关系数据库存储高度结构化的数据,该数据具有多个记录,这些记录存储相同类型的数据,因此它们可以用于存储结构化数据,并且不存储数据之间的关系。

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

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

RDBMS与图形数据库

下表是比较关系数据库和图形数据库的表。

Sr.No RDBMS Graph Database
1 Tables Graphs
2 Rows Nodes
3 Columns and Data Properties and its values
4 Constraints Relationships
5 Joins Traversal

Neo4j的优势

以下是Neo4j的优点。

  • 灵活的数据模型-Neo4j提供了灵活的简单而强大的数据模型,可以根据应用和行业轻松进行更改。

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

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

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

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

  • 密码查询语言-Neo4j使用ascii-art语法提供了一种声明性查询语言,以可视方式表示图形。该语言的命令采用人类可读的格式,非常易于学习。

  • 无联接-使用Neo4j,不需要复杂的联接即可检索已连接/相关的数据,因为无需联接或索引即可轻松检索其相邻节点或关系详细信息。

Neo4j的功能

以下是Neo4j的显着功能-

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

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

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

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

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

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

  • 驱动程序-Neo4j可以与-

    • REST API可与Java,Spring,Scala等编程语言一起使用。

    • 与UI MVC框架(例如Node JS)一起使用的Java脚本。

    • 它支持两种Java API:Cypher API和Native Java API,用于开发Java应用程序。除了这些,您还可以使用其他数据库,例如MongoDB,Cassandra等。

  • 索引-Neo4j通过使用Apache Lucence支持索引。