没有合适的资源?快使用搜索试试~ 我知道了~
首页neo4j入门资料汇总
neo4j入门资料汇总
需积分: 20 158 浏览量
更新于2023-05-27
评论 1
收藏 1.71MB DOCX 举报
Neo4j入门资料汇总,小组成员内部培训时整理,由浅入深的描述了一下Neo4j的使用。
资源详情
资源评论
资源推荐

Neo4j 入门详解
Neo4j 简介
是一个高性能的 图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌
入式的、基于磁盘的、具备完全的事务特性的 持久化引擎,但是它将结构化数据存储在网络(从数学
角度叫做图)上而不是表中。 也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有
特性。程序员工作在一个面向对象的、灵活的网络结构下,而不是严格、静态的表中。但是他们可以享受
到具备完全的事务特性、企业级的数据库的所有好处。 因其嵌入式、高性能、轻量级等优势,越来
越受到关注。
现实中很多数据都是用图来表达的,比如社交网络中人与人的关系、地图数据、或是基因信息等等 。
并不适合表达这类数据,而且由于海量数据的存在,让其显得捉襟见肘。 数据库的兴起,
很好地解决了海量数据的存放问题,图数据库也是 的一个分支,相比于 中的其他分支,它
很适合用来原生表达图结构的数据。
通常来说,一个图数据库存储的结构就如同数据结构中的图,由顶点和边组成。
是图数据库中一个主要代表,其开源,且用 实现(需安装 )。经过几年的发展,已经
可以用于生产环境。其有两种运行方式,一种是服务的方式,对外提供 接口;另外一种是嵌入式模
式,数据以文件的形式存放在本地,可以直接对本地文件进行操作。
分三个版本:社区版()、高级版()和企业版()。社区
版是基础,本文主要对其作出介绍,它使用的是 ! 协议,这意味着修改和使用其代码都需要开源,但
是这是建立在软件分发的基础上,如果使用 作为服务提供,而不分发软件,则不需要开源。这实际
上是 协议本身的缺陷。高级版和企业版建立在社区版的基础上,但多出一些高级特性。高级版包括一
些高级监控特性,而企业版则包括在线备份、高可用集群以及高级监控特性。要注意它们使用了 " !
协议,也就是说,除非获得商业授权,否则无论以何种方式修改或者使用 ,都需要开源。
设计理念
的设计动机是为了更好地同时也更高效地描述实体之间的关系。在现实生活中,每一个实体都
于周围的其他实体有着千丝万缕的关系,这些关系里面所存储的信息甚至要大于身体本身的属性。然后传
统的关系型数据库更注重刻画实体内部的属性,实体与实体之间的关系通常都是利用外键来实现。所以在
求解关系的时候通常需要 操作,而 操作通常又是耗时的。互联网尤其是移动互联网的爆发式增长
本来就使得传统关系型数据库不堪重负,再加上诸如社交网络等应用对于关系的高需求,可以说关系型数
据库已经是毫无优势。而图数据库作为重点描述数据之间关系的数据库应运而生,成为了 中非常重
要的一部分。而 正是图数据库中最为优秀的之一
Neo4j 特点
所用语言:8 特点:基于关系的图形数据库8使用许可:8 ,其中一些特性使用8" #商业许可8协议:
8$ #(或嵌入在8 中)8可独立使用或嵌入到8 应用程序8图形的节点和边都可以带有元数据
很好的自带 %& 管理功能8使用多种算法支持路径搜索8使用键值和关系进行索引为读操作进行优化8支持事
务(用8')8使用8( 图形遍历语言支持8 脚本8支持在线备份,高级监控及高可靠性支
持使用8" #商业许可
Neo4j 相关特性
数据模型
被称为 )*+,除了顶点()和边,(+,其包含一个类型-,还有一
种 重要 的 部 分 — — 属 性 。 无 论 是 顶 点 还 是 边 , 都 可 以 有 任 意 多 的 属 性 。 属 性 的 存 放 类 似 于 一 个
++ , . 为 一 个 字 符 串 , 而 ( 必 须 是 基 本 类 型 、 或 者 是 基 本 类 型 数 组 ,比如说
*、 或者 /0都是合法的。

索引
支持索引,其内部实际上通过 实现。
事务
完整支持事务,即满足 "12 性质。
"12 是以下四个事务特性的缩写:8
34)原子性8
一个事务的所有工作要么都(成功)执行,要么都不执行。不会发生只执行一部分的情况。8
比如说,一个事务开始更新 355 行记录,但是在更新了 65 行之后(因为某种原因)失败了,那么此
时数据库会回滚(撤销)对那 65 条记录的修改。8
64)一致性8
事务将数据库从一个一致性状态带入另一个一致性状态。8
比如说,在一个银行事务(在描述关系数据库事务的特性时,基本上都是用银行事务来作为描述对象
的)中,需要从存储账户扣除款项,然后在支付账户中增加款项。8
如果在这个中转的过程发生了失败,那么绝对不能让数据库只执行其中一个账户的操作,因为这样会
导致数据处于不一致的状态(这样的话,银行的账目上,借贷就不平衡了)。8
!4)隔离性8
这个特性是说,直到事务结束时(#((&.),其他事务(或者会话)对此事务所操作的数
据都不可见(但并不是说其他会话的读取会被阻塞)。8
比如说,一个用户正在修改 +4( 表,但是没有提交,那么其他用户在这个修改没有提交之
前是看不到这个修改的。8
4)永久性8
被提交的更改会永久地保存到数据库中(并不是说以后就不可以修改)。8
事务提交之后,数据库必须通过“恢复机制”来确保事务更改的数据不会丢失。
遍历和查询
遍历是图数据库中的主要查询方式,所以遍历是图数据中相当关键的一个概念。可以用两种方式来进
行遍历查询:第一种是直接编写 代码,使用 提供的 ( 框架;第二种方式是使用
提供的描述型查询语言,1+。
图算法
实现的三种图算法:最短路径(最少数目的关系)、. 算法(解决有向图中任意两个顶
点之间的最短路径问题)以及 "7算法(是解决静态路网中求解最短路最有效的方法)。
嵌入式可扩展
是一个嵌入式,基于磁盘的,支持完整事务的 持久化引擎,它在图像中而不是表中存储数
据。 提供了大规模可扩展性,在一台机器上可以处理数十亿节点、关系、属性的图像,可以扩展到
多台机器并行运行。相对于关系数据库来说,图形数据库善于处理大量复杂、互连接、低结构化的数据,
这些数据变化迅速,需要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性
能上的问题。 重点解决了拥有大量连接的传统 在查询时出现的性能衰退问题。通过围绕图
形进行数据建模, 会以相同的速度遍历节点与边,其遍历速度与构成图形的数据量没有任何关系。
Neo4j 与传统数据库的区别
允许对数据的简单且多样的管理 高度结构化的数据

数据添加和定义灵活,不受数据类
型和数量的限制,无需提前定义
表格 + 需预定义,修改和添加数
据结构和类型复杂,对数据有严格的限
制
常数时间的关系查询操作 关系查询操作耗时
提出全新的查询语言 +,查
询语句更加简单
查询语句更为复杂,尤其涉及到 或
操作时
最后再以下面两张图来展示一下两者在查询关系时的区别:
)RDBMS
Neo4j

Neo4j 集群模式运行原理
一个 )$" 集群的协作运行,协调行为是通过 8. 完成的。645 以后基于 9 协议开发
了自己的集群协调机制。
当一个 )$" 实体开启时将去连接协调器服务(8.)注册其本身并询问“谁是主机
()?”。如果某个机器是主机,新的实体将以从机(()开启并连接到主机()。如
果机器开启时为第一个注册或者通过主机选择算法应该成为主机,将会作为主机开启。
'''''')当从一个从机上执行一个写入的事务时,每个写入操作将与主机同步(主机与从机将被锁定)。当事
务提交时首先存在于主机上。当主机事务提交成功,从机上的事务也会被提交。为确保一致性,在执行写
入操作前从机与主机同步必须是最新的。这是建立主机与从机之间的通讯协议,所以如果需要,更新将会
自动发生。
'''''')可以通过在包含 +4(:::; 配置参数的配置文件中将数据库实体
设置成只做为从机。此实体虽然在系统故障恢复选择时将不可能再成为主机,然而此从机的行为与其他所
有从机都一样,含有永久写入到主机的能力。
'''''')当从主机上执行写入操作,它将与在普通的嵌入模式中执行一样。此时主机将不会推送更新消息到从
机。相反,从机可以配置一个拉取消息的时间间隔。没有选举,更新操作仅仅只会发生在从机上,任何时
候都将同步一个写入到主机。
'''''')将所有写入操作通过从机执行的好处是数据将被复制到两台机器上。这是建议的,避免当新选主机时
可能造成回滚失败。
'''''')当某台 数据库服务不可用时,协调器()将探测到并从集群中删除掉。当主机当
机时,新的主机将自动被选择出来。一般地,一个新的主机被选定并在几秒钟内启动,在这段时间将不会
执行任何写入操作(写入将抛出异常)。当某台机器从故障中恢复了,将会被自动重新连接到集群中。当
没有得到其他任何机器的备份的旧的主机改变时<)是唯一不确定的。如果新的主机被选择并在旧的主机恢复
前执行改变,将会有两个不同版本的数据。旧主机将移除分支数据库并从新主机下载一个全版本的数据。
'
=')所有这些可以归纳如下:
=')从机可以处理写入事务。
=')更新相对从机最终将会一致。
='))$")是一个容错并能继续执行从 9 台机器到单独一台机器(基于 8. 设置)。
=')在写入操作上从机将自动同步到主机。
=')当主机故障时新的主机将自动选出。

=')当任何导致运行中断的错误(网络、维护)解决时当台机器将会自动被重新连接到集群中。
=')事务的原子性、持久性和一致性并最终会广播到其他从机上。
=')主机故障了,所有正在运行写入事务将会被回滚,主机选举时任何写入操作都不能执行。
=')读取操作高度可用。
Neo4j 优缺点
优点:
1. 数据的插入,查询操作很直观,不用再像之前要考虑各个表之间的关系。
2. 提供的图搜索和图遍历方法很方便,速度也是比较快的。
3. 更快的数据库操作。当然,有一个前提条件,那就是数据量较大,在 >( 中存储的话需要许多
表,并且表之间联系较多(即有不少的操作需要 表)。
缺点:
1. 当数据过大时插入速度可能会越来越慢。4
2. 超大节点。当有一个节点的边非常多时(常见于大 ?),有关这个节点的操作的速度将大大下降。
这个问题很早就有了,官方也说过会处理,然而现在仍然不能让人满意。
3. 提高数据库速度的常用方法就是多分配内存,然而看了官方操作手册,貌似无法直接设置数据库内
存占用量,而是需要计算后为其”预留“内存444
注:鉴于其明显的优缺点, 适合存储”修改较少,查询较多,没有超大节点“的图数据。
应用场景
适用于图形一类数据。这是8 与其他 >( 数据库的最显著区别
例如:社会关系,公共交通网络,地图及网络拓谱。
不适用于:
1. 记录大量基于事件的数据(例如日志条目或传感器数据)
2. 对大规模分布式数据进行处理,类似于 $
3. 二进制数据存储
4. 适合于保存在关系型数据库中的结构化数据
Neo4j 安装部署
有两种访问模式:服务器模式和嵌入模式。在这里咱们只单纯介绍一下服务器安装模式。注:
仅有企业付费版支持 HA 模式,免费试用 30 天。
Windows 服务安装
1. 到官网下载对应版本的 安装包
2. 将安装包放到指定的目录下
3. :$ 配置
4. 运行:&@4&)((
5. 查询服务状态:&@4&)
6. 开启服务:&@4&)
7. 停止服务:&@4&)
8. 卸载命令:&@4&)
注:如果 %& 不工作请尝试禁用防火墙。
运行 后,在浏览器中打开网页:+A##((+ABB,+ 的端口是 BB!-,8即可进入
的图形操作界面,在里面可以直接操作数据库,也可以查看数据库的状态。
页面顶端可以直接写 1+ 语句并运行。右侧则显示一些数据库的状态以及提供一部分操作,包括:
1. &)2C。数据库信息。节点类别,边的类别,属性(包括节点的属性和边的属
性)。
剩余43页未读,继续阅读



















折个儿纸飞机
- 粉丝: 2
- 资源: 1
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- Xilinx SRIO详解.pptx
- Informatica PowerCenter 10.2 for Centos7.6安装配置说明.pdf
- 现代无线系统射频电路实用设计卷II 英文版.pdf
- 电子产品可靠性设计 自己讲课用的PPT,包括设计方案的可靠性选择,元器件的选择与使用,降额设计,热设计,余度设计,参数优化设计 和 失效分析等
- MPC5744P-DEV-KIT-REVE-QSG.pdf
- 通信原理课程设计报告(ASK FSK PSK Matlab仿真--数字调制技术的仿真实现及性能研究)
- ORIGIN7.0使用说明
- 在VMware Player 3.1.3下安装Redhat Linux详尽步骤
- python学生信息管理系统实现代码
- 西门子MES手册 13 OpcenterEXCR_PortalStudio1_81RB1.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0