文章目录
一、Neo4j简介
Neo4j是一种流行的基于Java语言编写的图形数据库。图是一组节点和连接这些节点的关系。图形数据库也被称为图形数据库管理系统或GDBMS, 其他的图形数据库是Oracle NoSQL数据库,OrientDB,HypherGraphDB,GraphBase,InfiniteGraph,AllegroGraph。
二、Neo4j - 特点和优势
1.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应用程序
2.Neo4j的优点
- 很容易表示连接的数据
- 检索/遍历/导航更多的连接数据是非常容易和快速的
- 非常容易地表示半结构化数据
- Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习
- 使用简单而强大的数据模型
- 不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引
3.Neo4j的缺点或限制
- AS的Neo4j 2.1.3最新版本,具有支持节点数,关系和属性的限制
- 不支持Sharding
三、Neo4j - 数据模型
Neo4j图数据库遵循属性图模型来存储和管理其数据。
属性图模型规则
- 表示节点,关系和属性中的数据
- 节点和关系都包含属性
- 关系连接节点
- 属性是键值对
- 节点用圆圈表示,关系用方向键表示
- 关系具有方向:单向和双向
- 每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”
- 在属性图数据模型中,关系应该是定向的。如果我们尝试创建没有方向的关系,那么它将抛出一个错误消息。
- 在Neo4j中,关系也应该是有方向性的。如果我们尝试创建没有方向的关系,那么Neo4j会抛出一个错误消息,“关系应该是方向性的”。
- Neo4j图数据库将其所有数据存储在节点和关系中。我们不需要任何额外的RDBMS数据库或无SQL数据库来存储Neo4j数据库数据。它以图形的形式存储其数据的本机格式。
- Neo4j使用本机GPE(图形处理引擎)引擎来使用它的本机图存储格式。
- 图形数据库数据模型的主要构建块是:
- 节点
- 关系
- 属性
- 简单的属性图的例子