Neo4J 介绍及安装|学习笔记

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 快速学习 Neo4J 介绍及安装

开发者学堂课程【SpringBoot 实战教程  Neo4J 介绍及安装】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/651/detail/10810


Neo4J 介绍及安装


内容介绍:

一、介绍

二、安装

 

一、介绍

1、Neo4j 是一个高性能的,NOSQL 非关系型redis 属于关系型数据库图形数据库,它是一个嵌入式的、基于磁盘的、具备完全的事务特性的 Java 持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j 也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。

2、这种数据库与传统的关系型数据库有很大的差别。关系型数据库与图形数据库比较

(1)关系型数据库:

常用的像 mysql,oracle 等都是关系型数据库,在关系型数据库里面对数据的处理是这样子的对每个对象都创建一个表,对象的属性对应表里面的列这是一张用户表

id

name

sex

phone

1

tim

boy

110

2

lili

girl

120

所示。在数据库里有条数据表示两个对象:tim,lili。在现实生活中会发现任何对象都是有某种联系的,那么关系型数据库里是怎样来表示这种关系呢?就比如tim和 lili 是好朋友,那么在数据库里怎样来表示他们的关系呢?关系型数据库里面是这样处理的新建一个 relationship 的表,表里面有两个字段 id,friendid。

id

friendid

1

2

2

1

如图所示。如果要查找 tim 的朋友那么可以遍历 relationship 表就可以了。这种数据模型会有什么问题呢?其实可以对这个数据模型提个问题——tim 的朋友的朋友的朋友的朋友是谁?好,关系型数据会这样回答你的问题:首先在 relationship 表里面找到所有 id 为1(tim 的 id)的数据,然后拿到对应的 friendid,接着逐个根据friendid再进行遍历找到对应的 friendid,如此反复地遍历查询也许10分钟也许一小时,也许它永远都无法回答你的问题。其实,这种关系只要超过5级关系型数据库就无法解决问题,这就是为什么需要图形数据库的出现了。

有些情况下并不是查它的朋友可能会查它朋友朋友的朋友虽然也能实现但是查询写 sql 语句比较麻烦另外查询语句执行的性能会比较低在这种情况下 Neo4j 可以解决这个问题它把每一个用户看作一个节点多个用户就是多个节点用户和用户之间是有关系的节点和节点之间有关系

(2)图形数据库:

在图形数据库里面对数据的处理是这样子的:每个对象都表示成为一个节点(node),每个节点之间的联系表示成关系(relationship),节点与节点之间用关系关联在一起。可以看图更好理解一点。

image.png

如图所示,有三个节点(node)它们都通过 FRIEND 关系(relationship)关联起来。Tim 的朋友是 lili,lili 跟 jack 互为朋友,同时 jack 认识 tim。在图形数据库里要回答像“tim 的朋友的朋友的朋友”的问题非常简单,数据库只需要找到 tim 的关系(relationship)所对应的节点然后找到对应节点的关系(relationship),只需遍历几次,这样就可以很容易回答了上面的问题了。

圆圈表示节点一个圆圈是一个节点节点和节点之间就是用户和用户之间箭头表示它们之间的关系表示 tim 认识 lililili 认识 jackjack 认识 lilijack 认识 tim但是 tim 不一定认识 jacktim 的朋友是 lilitim 的朋友的朋友是 jack从图形化的上面很容易找到相应的朋友如果用关系型数据库就相对比较麻烦甚至比如找朋友的朋友的朋友基本上实现不了这就是图形数据库最近几年之所以流行的原因


二、安装

1下载 windows 环境下的安装包 neo4j-community-3.3.4-windows.zip

2解压,解压到某一个目录下比如目录为 E:\neo4j目录结构bin 是 neo4j 的可执行文件配置文件conf 是数据存放的目录data 是它自己的架包

3设置环境变量配置方式和 java 一样

(1)变量名:NEO4J_HOME

(2)变量值:E:\neo4j

(3)再修改变量 path,增加 %NEO4J_HOME%\bin

4查看并编辑配置参数

%NEO4J_HOME%\conf\neo4j.conf

5启动

在 DOS 命令行窗口,执行:neo4j.batconsole

2018-03-29 08:36:21.329+0000INFO

2018-03-29 08:36:21.372+0000INFOStarting.

018-03- -29 08:36:23. 145+0000INFOBolt enabled on 127. 0.0.1: 7687/

2018-03-29 08: 36: 28.204+0000INFOStarted.

2018-03- 29 08:38: 43. 999+0000 INFORemote interface available at http://localhost: 7474/

看到这个信息说明 neo4j 正常启动了相当于 neo4j 服务启动了端口是7474。

6打开 neo4j 集成的浏览器如果是第一次访问会要求登陆登陆名和密码都是 neo4j它会要求修改密码

http://localhost:7474/

出现以下页面就证明 neo4j 安装成功并且启动成功可以正常访问

既然它是数据库就像 mysql操作 msql 需要 sql 语句增删改查

Cypher 语言:Cypher 是专门为图像数据库设计的语言,它浅显易懂。图形数据库也就是 neo4j重点就两个一个是节点一个是关系创建节点的同时创建关系另外涉及到查询查询节点举例,假如要创建这么一个数据模型好友 A 与好友 B 是朋友关系,好友 B 与 C 也是朋友关系,好友 A 认识 C 但 C 不认识 A这样的数据模型用 Cypher 描述如下:

create 建立节点

(A:Person 节点里面指定了属性属性的名字和属性的值{name:'jack'})-[:Friend]->(B:Person{name:'tom'})-[:Friend]->(C:Person 这是一个节点

{name:'lucy'}),(A)-[:Know]->(C)这是一个节点

(注:()里面的是节点,[]里面的是关系,{}里的是属性名和属性值类似于阶层格式>表示关系的方向)中括号是关系friend朋友关系说明 a 和 b 是朋友关系箭头是指向 ba 是认识 b 的b 是 a 的朋友c 是 b 的朋友

要查询A的一个名叫”tom”的朋友:

match(a)-[:Friend]->(b)  a 的朋友用 b 代表

Whereb.name='tom'查询条件朋友必须叫 tom

Returnb 查询之后返回

Cypher 语言的实现用的是 match

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2月前
|
存储 网络安全 数据库
【2024最新版】neo4j安装配置
【2024最新版】neo4j安装配置
77 0
|
9月前
|
SQL NoSQL 算法
Neo4j极简教程
图数据库是NoSQL类数据库的一大典型代表,在国内图数据库属于新兴事物,其优异的复杂关系解决方案引起了国内众多大型互联网公司及IT开发者的关注,而Neo4j是目前图形化数据库中最为出色、最为成熟的产品。
603 0
Neo4j极简教程
|
10月前
Neo4j的一些命令
delete命令
79 0
|
10月前
neo4j的一些命令
return命令
74 0
|
10月前
|
数据库管理
Neo4j一些命令
Neo4j的CREATE命令
67 0
|
11月前
|
SQL 数据可视化 NoSQL
|
11月前
|
NoSQL 数据可视化 Java
我的Neo4j探索之旅 - 初识Neo4j(一)
neo4j 这个东西在国内用的很少,目前能百度的资料也是很早之前的几篇了,我针对neo4j 3.5 的版本进行一次学习和记录,以及实际的工作需求我也遇到了,后续会开源一个剔除业务的开源项目,有兴趣的读者可以了解一下图数据库的中间件,还是蛮有意思的。
212 0
|
11月前
|
机器学习/深度学习 SQL 数据库
NEO4J的入门和一些简单的操作
> 持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天,[点击查看活动详情](https://juejin.cn/post/7147654075599978532 "https://juejin.cn/post/7147654075599978532") # 引言 今天我们继续学习NEO4J. # 创建 创建语句我们一般会使用create指令 我们首先在控制台上输入`neo4j.bat console`启动neo4j 然后打开你的浏览器,然后在浏览器地址栏中输入 `http://localhost:7687 - Neo4j Browser](http:
|
存储 NoSQL Java
Neo4j学习笔记(一) 安装配置
Neo4j学习笔记(一) 安装配置
458 0
|
JavaScript 数据库
Neo4j学习笔记(三) 导入数据
Neo4j学习笔记(三) 导入数据
811 0