Neo4j入门+深入

目录

一、概述

1、简介

1.1、什么是图数据库(graph database)

1.2、什么是Neo4j

1.3、Neo4j数据模型


一、概述

        "大数据"每年都在增长,但如今的企业领导者不仅需要管理更大规模的数据,还迫切需要从现有数据中得出深刻见解。那么,应该如何获得这些见解呢?

        引用Seth Godin的说法,企业需要摈弃仅仅收集数据点的做法,开始着手建立数据之间的关联关系。数据点之间的关系甚至比单个点本身更重要。

        讽刺的是,传统的关系数据库管理系统(RDBMS)并不擅长处理数据之间的关系。那些表状数据模式和呆板的结构难以添加连接或不同类型连接。为了利用这些数据关系,您的组织需要一种能将关系信息存储为一等实体的新型数据库技术,这种技术就是图数据库

        图技术就是未来。图数据库不仅能有效存储数据点之间的关系,而且非常灵活,适合添加新的关系类型,并使数据模型适应新的业务需求。

        除了数据库本身,图技术还涵盖了图数据科学的新兴领域,适合预测分析和机器学习,而所用的图数据可视化适合针对特定目的的数据发现和探索。

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数据模型

图论基础:一组节点连接这些节点的关系,图形以属性的形式将数据存储在节点和关系中,属性是用于表示数据的键值对。在图论中,我们可以表示一个带有圆的节点,节点之间的关系用一个箭头标记表示

最简单的图是单个节点:

Neo4j入门+深入_第1张图片

 我们可以使用节点表示社交网络,它不包含任何属性。我们可以添加一些属性。

Neo4j入门+深入_第2张图片

 在两个节点之间创建关系:

Neo4j入门+深入_第3张图片

 此处在两个配置文件之间创建关系名称"跟随"。这意味着Profile1遵循Profile2.

属性图模型

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

属性图模型规则:

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

        2、节点和关系都包含属性

        3、关系连接节点

        4、属性是键值对

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

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

        7、每个关系包含"开始节点"或"从节点"和"到节点"或"结束节点"。

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

        Neo4j图数据库将其所有数据存储在节点和关系中,我们不需要任何额外的RDBMS数据库或NoSQL数据库来存储Neo4j数据库数据,它以图的形式存储数据。Neo4j使用本机GPE(图形处理引擎)来使用它的本机图存储格式。

1.4、Neo4j使用场景

1、欺诈检测

2、实时推荐引擎

3、知识图谱

4、反洗钱

5、主数据管理

6、供应链管理

7、增强网络和IT运营管理能力

8、数据谱系

9、身份和访问管理

10、材料清单

每天⽤⼼记录⼀点点。内容也许不重要,但习惯很重要!

你可能感兴趣的:(nosql)