Neo4j入门+深入
目录
一、概述
1、简介
1.1、什么是图数据库(graph database)
1.2、什么是Neo4j
1.3、Neo4j数据模型
一、概述
1、简介
1.1、什么是图数据库(graph database)
随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了一张庞大而复杂的关系网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈几何级数增长,急需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。
世界上很多著名的公司都在使用图数据库,比如:
社交领域:Facebook、Twitter、Linkedin用它来管理社交关系,实现好友推荐
零售领域:eBay,沃尔玛使用它实现商品实时推荐,给买家更好的购物体验
金融领域:花旗、瑞银等银行在用图数据库做风险处理
汽车制造领域:沃尔沃,丰田等汽车制造商依靠图数据库推动创新制造解决方案
电信领域:Verizon,Orange和AT&T等电信公司依靠图数据库来管理网络,控制访问
酒店领域:万豪和雅高酒店等使用图数据库来管理复杂且快速变化的库存
图数据库并非指存储图片的数据库,而是以图数据库结构存储和查询数据。
图数据库是基于图论实现的一种NoSQL数据库,其数据存储结构和数据查询方式都是以图论为基础的,图数据库主要用于存储更多的连接数据。
图论(Graph Theory)是数学的一个分支,它以图为研究对象图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应相应两个事物间具有这种关系。
1.2、什么是Neo4j
Neo4j是一个开源的NoSQL图形数据库,2003年开始开发,使用scala和java语言,2007年开始发布。
1、是世界上最先进的图数据库之一,提供原生的图数据存储,检索和处理;
2、采用属性图模型(Property graph model),极大的完善和丰富图数据模型;
3、专属查询语言Cypher,直观,高效;
Neo4j官网:Neo4j官网
Neo4j的特性:
1、SQL就像简单的查询语言Neo4j CQL
2、它遵循属性图数据模型
3、它通过使用Apache Lucence支持索引
4、它支持UNIQUE约束
5、它包含一个用于执行CQL命令的UI;Neo4j数据浏览器
6、它支持完整的ACID(原子性,一致性,隔离性和持久性)规则
7、它采用原生图形库与本地GPE(图形处理引擎)
8、它支持查询的数据导出到JSON和XLS格式
9、它提供了REST API,可以被任何编程语言(如java,Spring,Scala等)访问
10、它提供了可以通过任何UI MVC框架(如Node JS)访问的java脚本
11、它支持两种java API:Cypher API和Native java API来开发java应用程序
Neo4j的优点:
1、它很容易表示连接的数据
2、检索/遍历/导航更多的连接数据库是非常容易和快速的
3、它非常容易地表示半结构化数据
4、Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习
5、使用简单而强大的数据模型
6、它不需要复杂的连接的相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引
1.3、Neo4j数据模型
每天⽤⼼记录⼀点点。内容也许不重要,但习惯很重要!