### Neo4j是什么 [Neo4j](https://baike.baidu.com/item/Neo4j)是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个[嵌入式](https://baike.baidu.com/item/嵌入式)的、基于[磁盘](https://baike.baidu.com/item/磁盘)的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。 ### 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查询语言命令是人性化的可读格式,非常容易学习 - 它使用简单而强大的数据模型 - 它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引