Neo4j 是一个高性能的 NoSQL 图形数据库,它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j 也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。

接下来我们来一起学习一下Neo4j的安装和使用方法吧!

知识点
图数据库的概念
Neo4j 的安装
Neo4j 数据迁移
Neo4j Browser 的使用

图数据库的概念

图数据库的基本概念是图,在这里我们用一个简单的例子来介绍图:

图例
如下就是一个图,图中包含的信息是:一位名为 Gods_Dusk 的用户,撰写了两门蓝桥云课课程,其中一门叫做 《Python 机器学习玩转 Flappy Bird 游戏》,所属学科是机器学习和 Python,另一门课程叫做《图数据库 Neo4j 基础入门》,所属学科为 Neo4j。同时该用户参加了第 23 期 Python 楼赛,获得了第二名。

另一名用户为云课管理员,用户 ID 为 1。

图片描述

  • 节点

节点通常用于表示实体,实体的概念来自哲学,现实世界中的客观事物、抽象的事件均可称之为实体。节点是组成图的最小单位。

  • 标签

标签用于分类节点,如所有用来表示蓝桥云课课程的节点都可以使用标签:课程进行标记。在 Neo4j 中,就可以根据不同标签类型进行特定节点的查询。

一个节点可以有多个标签。如用户 Gods_Dusk,既是蓝桥云课用户,也是蓝桥云课作者;用户 云课管理员,既是蓝桥云课用户,也是蓝桥云课员工。

  • 关系

图中的边表示关系,关系连接两个节点,如撰写关系,将《图数据库 Neo4j 基础入门》课程和用户 Gods_Dusk 相连接起来。

关系具有方向性,如《图数据库 Neo4j 基础入门》属于 Neo4j 类型的课程,而反之不成立,但只需要注意到关系的方向,就不需要在相反的方向上添加重复的关系,即 Neo4j 类型的课程包含《图数据库 Neo4j 基础入门》。

被关系连接的两个节点,其中关系的起始节点被称为出节点,关系的终止节点被称为入节点。同时,一个节点的出度是指这个节点被多少关系作为出节点,同理,入度是指被多少个关系作为入节点。

特别的是,一个节点可以有指向自己的关系,比如用户 Gods_Dusk 认识自己。

  • 关系类型

关系与节点一样具有类型划分,但关系有且仅有一种关系类型。

  • 属性

属性是用于描述节点和关系特性的名称 - 值对。 如一个用户,具有属性:用户名 - Gods_Dusk,用户 ID - 812252。

  • 路径与遍历

在图中,查询过程是路径搜索与遍历的过程,如 “Gods_Dusk 写过哪些课?”,为了获得答案,就需要先从图中找到用户名为 Gods_Dusk 的节点,然后找到类型为撰写的关系,这些关系的出节点就是答案,在这里路径的搜索长度为 1。而问题“Gods_Dusk 写过的课程都是属于哪些类型?”的搜索长度为 2。

Neo4j 安装与使用

如果你使用的是个人环境,可以在Neo4j官网中下载对应操作系统的安装包。Windows 和 Mac 系统下有对应的桌面应用,可以直接下载安装。Linux 系统下需要下载压缩包,解压后进入 bin 目录启动程序。

如果你在使用蓝桥云课学习相关课程,环境中已经安装了 Neo4j,无需下载可以直接使用,而且是免费的,在学编程的同学不妨试试。

启动 Neo4j

打开终端,输入

sudo neo4j start

即可启动 Neo4j 服务。

同时输入:

sudo neo4j status

可以查看 Neo4j 的启动情况。

打开浏览器,在地址栏输入 localhost:7474,就可以打开 Neo4j Browser(若网页提示连接失败,请等待片刻后再刷新网页)。Neo4j Browser 是 Neo4j 数据库面向开发人员的工具,允许开发人员执行查询语句并可视化结果。

首次进入 Neo4j Browser 时需要重置密码,系统默认密码为 neo4j,我们将它修改为lanqiao,当然你可以随意设置。

数据迁移

Neo4j 提供了 neo4j-admin 来进行数据的导入导出,在迁移之前,需要停止 Neo4j 服务。

数据导入

# 下载其他已导出的 Neo4j 数据
wget https://labfile.oss.aliyuncs.com/courses/4043/graph.db.dump
# 停止 Neo4j 服务
sudo neo4j stop
# 导入到本地数据库中
sudo neo4j-admin load --from=graph.db.dump --database=graph.db --force
# 启动 Neo4j 服务
sudo neo4j start

数据导出

# 停止 Neo4j 服务
sudo neo4j stop
# 导出数据到本地 /home/shiyanlou/Code 目录下
sudo neo4j-admin dump --database=graph.db --to=/home/shiyanlou/Code
# 启动 Neo4j 服务
sudo neo4j start

Neo4j Browser

Neo4j Browser 中有 3 个模块,侧边栏,Cypher 编辑器与结果栏,在进入 Neo4j Browser 时结果栏会展示欢迎界面。

Cypher 编辑器

Cypher 是 Neo4j 数据库的查询语言, Cypher 编辑器则用于输入和运行 Cypher 语句。

在 Cypher 编辑器右侧有三个按钮。

其功能分别是:

保存收藏输入框中的 Cypher 语句。
清除输入框中的 Cypher 语句。
运行输入框中的 Cypher 语句,若语句只有一行,则可以用回车键作为快捷键。

侧边栏

侧边栏包含一组按键,用于数据浏览和环境设置。从上至下分别是:

数据库信息
数据库信息一栏提供了当前图数据库概览,并展示当前用户的角色和 Neo4j 版本信息。

在数据导入一节,我们从其他数据库中导入了一些数据,所以在点击数据库信息展示按钮时,可以展示数据库中具体统计内容,如下图所示:

Node Labels:展示数据库中节点数量与节点类型,在这里一共 8 个节点,节点类型有 Course,User,Teacher,Challenge 和 Category。

Relationship Types:展示数据库中关系数量与关系类型,在这里一共 7 个关系,关系类型有 WRITE,BELONGS,PARTICIPATE。

Property Keys:展示数据库中节点与关系的属性名,在这里属性名有 name,courseId,workingTime,userId,rank。

Connected as:显示当前用户信息,若当前用户为管理员,则还可以进行成员管理操作。

DBMS:显示 Neo4j 的版本与系统信息。

单击节点、关系、属性中显示的任何一个标签,Neo4j 会运行一个快捷查询,并在结果栏可视化查询结果。

收藏夹
收藏夹用于收藏 Cypher 命令,同时允许用户下载收藏的语句到本地和上传本地语句。

文档
Neo4j Browser 中直接内嵌了官方文档,点击相应标题就可以跳转到对应的官方文档。

数据库远程同步
清空本地数据库,与云端数据库同步。

设置
浏览器设置可对网页 UI,结果图形可视化进行相关的配置。

Neo4j 相关信息
显示关于 Neo4j 的相关信息,包括版本号、许可证、社区以及致谢。

结果栏

Neo4j Browser 以结果帧的方式,在结果栏保存每一次运行结果,允许用户直接在结果帧中进行查询后的操作。

以点击侧边栏中节点 User 为例,在一个结果帧中,上方左侧记录了运行的 Cypher 语句 MATCH (n:User) RETURN n LIMIT 25,点击后会在 Cypher 编辑器中显示该语句,方便用户修改和复用。

结果帧下方的结果视图分别有:

图视图
以图的形式显示结果,并允许配置节点、边、文字的显示风格(如颜色,大小,显示的属性),同时图视图允许用户对结果中的图进行拖动,隐藏和二次查找操作。在点击图中节点和边时,视图的下边栏会显示对应节点和边的属性,其中 <id> 是 Neo4j 生成的自增主键。

图视图并不会始终出现在结果帧中,只有当查询结果可以表示为图时,才会有图视图。

表视图
以 JSON 格式显示结果。

文本视图
以纯文本表格的形式显示结果。

代码视图
显示提交的请求,Neo4j 服务器版本和地址,以及响应结果。

总结

以上是 Neo4j 的简介,通过上文的学习我们初步接触了图数据库,Neo4j 及 Cypher 的基本概念,实践了对 Neo4j 的 启动,停止和数据迁移,使用和查看 Neo4j Browser 等基本操作。
希望大家再接再厉,早日熟练运用Neo4j!
参考资料

如果你觉得这篇文章有用就点个赞吧!

图数据库Neo4j的介绍与使用相关推荐

  1. 图数据库Neo4j介绍

    1.图数据库Neo4j介绍 1.1 什么是图数据库(graph database) 随着社交.电商.金融.零售.物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运 ...

  2. Neo4j(1):图数据库Neo4j介绍

    1 什么是图数据库(graph database) 随着社交.电商.金融.零售.物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运算.大数据行业需要处理的数据之间 ...

  3. 大数据时代的新型数据库-图数据库Neo4j介绍

    2019独角兽企业重金招聘Python工程师标准>>> 1.Neo4j简介 Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上形成图谱而不是表中.Neo4j也 ...

  4. 图数据库Neo4j简介

    图数据库Neo4j简介 转自: 图形数据库Neo4J简介 - loveis715 - 博客园 https://www.cnblogs.com/loveis715/p/5277051.html 最近我在 ...

  5. 大数据时代的新型数据库 — 图数据库 Neo4j 的应用

    概览 微云数聚(北京)科技有限公司是一家实力雄厚的大数据技术公司,由移动互联网技术专家团队.大数据专业团队和建模博士团队组成.微云数聚专注于研究图数据库技术及其应用,是世界领先的图数据库Neo4j在中 ...

  6. 图数据库Neo4j实战(全网最详细教程)

    1.图数据库Neo4j介绍 1.1 什么是图数据库(graph database) 随着社交.电商.金融.零售.物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运 ...

  7. Hello World 之Spring Boot 调用图数据库Neo4j

    明日歌 [清]钱鹤滩 明日复明日,明日何其多! 我生待明日,万事成蹉跎 1. 图数据库Neo4j之爱的初体验 ----与君初相识,犹似故人归 在如今大数据(big data)横行的时代,传统的关系型数 ...

  8. 图数据库Neo4j技术原理探秘

    尚学堂给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受_哔哩哔哩_bilibili 如前文图数据Neo4j导论所提,Ne ...

  9. python使用_py2neo_CRUD(操作图数据库neo4j)

    通过py2neo对图数据库neo4j进行增删查改操作: #!/usr/bin/python3 # -*- coding: utf-8 -*- """ 通过py2neo进行 ...

最新文章

  1. python基础-字符串
  2. mysql decs倒叙查询_mysql按照日期方式查询
  3. 区块链去中心化有那么有用吗?
  4. 甲骨文Java 14来啦!
  5. 百一测评c语言两个数求和程序,2017计算机二级C语言考前测试题与答案
  6. 禁用,元素设置为不可点击
  7. Pycharm如何取消自动换行
  8. 【Win 10 应用开发】在App所在的进程中执行后台任务
  9. android实现地图功能实现,Android百度地图应用之基本地图功能实现
  10. Win10系统电脑如何设置窗口绿色护眼色
  11. Go优雅的重启服务之endless库
  12. 微信聊天记录删了如何找回
  13. 如何零基础学习法语,陈家桥法语零基础入门学习
  14. 淘宝直播赚佣金项目玩法
  15. python异常处理机制例题_16.python异常处理
  16. UGUI动画快速制作
  17. 网约车租车平台有哪些,网约车租车平台都有哪些功能
  18. 第35篇 网络(五)获取本机网络信息
  19. AdaBoost公式简单版本的推导
  20. 阿piu传-文档批量上传客户端-原创力版使用帮助

热门文章

  1. 新东方雅思词汇---6.1、oppose
  2. Winform Datagridview 单元格html格式化支持富文本
  3. networkX如何读取存储图的二进制.dat文件
  4. bash脚本编程之一 变量、变量类型等
  5. 【ASP.NET MVC】 路由机制:命名路由
  6. 沈阳招聘.NET(C#)高级软件工程师
  7. sprint2第三天任务完成情况
  8. 【SignalR学习系列】7. SignalR Hubs Api 详解(JavaScript 客户端)
  9. 单车家族 结对项目二
  10. 构建之法阅读心得(二)