当前位置:   article > 正文

学习Neo4j_neo4j难吗

neo4j难吗

一、图形数据库Neo4j介绍

1、 什么是图数据库

随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了一张庞大而复杂的关系网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈几何级数增长,急需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。

举个栗子:

  • 社交领域:Facebook,Twitter用它来管理社交关系,实现好友推荐
  • 零售领域:eBay,沃尔玛使用它实现商品实时推荐,给买家更好的购物体验
  • 金融领域:摩根大通,花旗和瑞银等银行在用图数据库做风控处理

图数据库是基于图论实现的一种NoSQL数据库,其数据存储结构和数据查询方式都是以图论为基础的,图数据库主要用于存储更多的连接数据。

图论(Graph Theory):

以图为研究对象,图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间俱有这种关系。

1.1、对比关系型数据库

关系型数据库(RDBMS)图数据库(Graph Database)
行/外键节点
列和数据属性和数据
约束/join关系

1.2、对比其他NoSQL数据库

  • 键值(key/value)数据库
  • 列存储数据库
  • 文档型数据库
  • 图数据库
    在这里插入图片描述
    在这里插入图片描述

2、什么是Neo4j

Neo4j是一个开源的NoSQL图形数据库,使用Scala和Java语言,2003年开始开发,2007年发布。

  • 提供原生的图数据存储,检索和处理
  • 采用属性图模型(Property Graph Model),极大地完善和丰富图数据模型
  • 专属查询语言CQL(Cypher Query Language),直观

Neo4j官网

Neo4j的特性:

  • 支持完整的ACID(原子性,一致性,隔离性和持久性)规则
  • 支持查询的数据导出到 JSON 和 XLS格式
  • 提供REST API,可以被大多编程语言(Java,Scala等)访问

Neo4j的优点:

  • 很容易表示连接的数据,一目了然
  • 也非常容易表示半结构化数据
  • 不需要复杂的连接来检索连接/相关的数据,因为它很容易检索它的相邻节点或关系有没有连接或索引

3、Neo4j数据模型

图论基础:

1> 图是一组节点和连接这些节点的关系,图形以属性的形式将数据存储在节点和关系中,属性是用于表示数据的键值对。

2> 在图论中,可以表示一个带有圆的节点,节点之间的关系用一个箭头标记表示。

最简单的是单个节点:
在这里插入图片描述

在两个节点之间创建关系:
在这里插入图片描述
备注:两个配置文件之间创建关系名称“跟随”,这也就意味着Profile:1 遵循 Profile:2

图数据库数据模型的主要构建块:

  • 节点
  • 关系
  • 属性

4、Neo4j的构建元素

Neo4j图数据库构建元素主要有:

  • 节点
  • 属性
  • 关系
  • 标签
  • 数据浏览器
    在这里插入图片描述

节点

节点(Node)是图数据库中的一个基本元素,用来表示一个实体记录,就像关系数据库中的一条记录一样;在Neo4j中节点可以包含多个属性(Property)和多个标签(Label)

  • 节点是主要的数据元素
  • 节点通过关系连接到其他节点
  • 节点可以俱有一个或多个属性(即,存储为键/值对的属性)
  • 节点有一个或多个标签,用于描述其在图表中的作用

属性

属性(Property)是用于描述图节点和关系的键值对;其中Key是一个字符串,值可以通过使用任何Neo4j 数据类型来表示

属性是命名值,其中名称(键)是字符串

关系

关系(Relationship)同样是图数据库的基本元素,当数据库中已经存在节点后,需要将节点连接起来构成图;

关系就是用来连接两个节点,关系也称为图论的边(Edge),其始端和末端都必须是节点,关系不能指向空也不能从空发起;

关系和节点一样可以包含多个属性,但关系只能有一个类型(Type)

  • 关系连接两个节点
  • 关系是俱有方向性的
  • 节点可以有多个甚至递归的关系
  • 关系可以有一个或多个属性(即存储为键值对的属性)
  • 基于方向性,Neo4j关系可分为:单向关系,双向关系

标签

标签(Label)将一个公共名称与一组节点或关系相关联,节点或关系可以包含一个或多个标签。可以为现有节点或关系创建新标签/删除已有标签

  • 标签用于将节点分组
  • 一个节点可以俱有多个标签
  • 对标签进行索引以加速在图中查找节点

二、Neo4j-CQL使用

在这里插入图片描述
Neo4j常用命令

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号