Neo4j

from: https://www.w3cschool.cn/neo4j/neo4j_spring_data_introduction.html

图数据库主要用于存储更多的连接数据。

如果我们使用RDBMS数据库来存储更多连接的数据,那么它们不能提供用于遍历大量数据的适当性能。 在这些情况下,Graph Database提高了应用程序性能。

如今,大多数社交网络应用程序(如Facebook,Google +,LinkedIn,Twitter,Yammer等)和视频托管应用程序(如Google YouTube,Flickr,Yahoo Video等)都在使用更多连接的数据。

Neo4j的特点

SQL就像简单的查询语言Neo4j CQL

它遵循属性图数据模型

它通过使用Apache Lucence支持索引

它支持UNIQUE约束

它它包含一个用于执行CQL命令的UI:Neo4j数据浏览器

它支持完整的ACID(原子性,一致性,隔离性和持久性)规则

它采用原生图形库与本地GPE(图形处理引擎)

它支持查询的数据导出到JSON和XLS格式

它提供了REST API,可以被任何编程语言(如Java,Spring,Scala等)访问

它提供了可以通过任何UI MVC框架(如Node JS)访问的Java脚本

它支持两种Java API:Cypher API和Native Java API来开发Java应用程序

Neo4j的优点

它很容易表示连接的数据

检索/遍历/导航更多的连接数据是非常容易和快速的

它非常容易地表示半结构化数据

Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习

它使用简单而强大的数据模型

它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引

Neo4j的缺点或限制

AS的Neo4j 2.1.3最新版本,它具有支持节点数,关系和属性的限制。

它不支持Sharding。

Neo4j属性图数据模型

Neo4j图数据库遵循属性图模型来存储和管理其数据。

属性图模型规则

表示节点,关系和属性中的数据

节点和关系都包含属性

关系连接节点

属性是键值对

节点用圆圈表示,关系用方向键表示。

关系具有方向:单向和双向。

每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”

在属性图数据模型中,关系应该是定向的。如果我们尝试创建没有方向的关系,那么它将抛出一个错误消息。

在Neo4j中,关系也应该是有方向性的。如果我们尝试创建没有方向的关系,那么Neo4j会抛出一个错误消息,“关系应该是方向性的”。

Neo4j图数据库将其所有数据存储在节点和关系中。我们不需要任何额外的RRBMS数据库或无SQL数据库来存储Neo4j数据库数据。它以图形的形式存储其数据的本机格式。

Neo4j使用本机GPE(图形处理引擎)引擎来使用它的本机图存储格式。

图形数据库数据模型的主要构建块是:

节点

关系

属性

Neo4j - 图形理论基础

图是一组节点和连接这些节点的关系。图形数据存储在节点和关系在属性的形式。属性是键值对表示数据。

图形是一组节点和连接这些节点的关系。 图形以属性的形式将数据存储在节点和关系中。 属性是用于表示数据的键值对。

在图形理论中,我们可以表示一个带有圆的节点,节点之间的关系用一个箭头标记表示。

最简单的可能图是单个节点。

Neo4j_第1张图片

我们可以使用节点表示社交网络(如Google+(GooglePlus)个人资料)。 它不包含任何属性。

向Google+个人资料添加一些属性

Neo4j_第2张图片

此节点包含一组属性。 属性是一个名称:值对。

在两个节点之间创建关系

Neo4j_第3张图片

此处在两个配置文件之间创建关系名称“跟随”。 这意味着Profile-I遵循Profile-II。

复杂的示例图

Neo4j_第4张图片

这里节点用关系连接。 关系是单向或双向的。

从XYZ到PQR的关系是单向关系。

从ABC到XYZ的关系是双向关系。

你可能感兴趣的:(Neo4j)