📅  最后修改于: 2020-11-27 06:46:21             🧑  作者: Mango
Neo4j是使用Java技术开发的世界领先的开源图形数据库。它具有高度的可伸缩性和无模式(NoSQL)。
图形是一组对象的图形表示,其中一些对象对通过链接连接。它由两个元素组成-节点(顶点)和关系(边)。
图形数据库是用于以图形形式对数据建模的数据库。在这里,图的节点描述实体,而关系描述这些节点的关联。
Neo4j是一个流行的图形数据库。其他图数据库是Oracle NoSQL数据库,OrientDB,HypherGraphDB,GraphBase,InfiniteGraph和AllegroGraph。
如今,大多数数据都以不同对象之间的关系形式存在,并且更经常地,数据之间的关系比数据本身更有价值。
关系数据库存储高度结构化的数据,该数据具有多个记录,这些记录存储相同类型的数据,因此它们可以用于存储结构化数据,并且不存储数据之间的关系。
与其他数据库不同,图形数据库将关系和连接存储为一流的实体。
与其他数据库相比,图形数据库的数据模型更简单,并且可以与OLTP系统一起使用。它们提供了诸如事务完整性和操作可用性之类的功能。
下表是比较关系数据库和图形数据库的表。
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使用ascii-art语法提供了一种声明性查询语言,以可视方式表示图形。该语言的命令采用人类可读的格式,非常易于学习。
无联接-使用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支持索引。