### 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查詢語言命令是人性化的可讀格式,非常容易學習
- 它使用簡單而強大的數據模型
- 它不需要復雜的連接來檢索連接的/相關的數據,因為它很容易檢索它的相鄰節點或關系細節沒有連接或索引