写在前面(废话篇):

填个坑,系统全部做完做一个毕设专题。

这篇文章在我的草稿箱里蹲了两个月。最近毕设答辩结束,有角度的时间来填个坑。
因为本科没有学过数据库课程(学院不让我们专业修这门课),所以在做毕业设计涉及数据库的内容一概不知。研究能力较差的我重新学一遍数据库实在来不及,就选择了这上手简单,增删改查一应俱的可视化图形数据库。

一、Neo4j可视化图形数据库简介

百度百科上对于neo4j解释如下图。说的很官方是不是?看不懂是不是?

通俗的来说就是这是一个不需要你自己设计的数据库,通过采用结构化设计方式,把各种信息存储在图形中的一个个点上,而不是传统意义上的表格中。
同时展示方面采用图的简单直观可视化效果。相对于冷冰冰的表格数据,图形显得更加有血有肉。

二、下载与安装

neo4j下载
官网下载比较慢,是我电脑的问题吗?

或者直接把安装包上传资源中(点我传送)(更新:这个解压包有问题,直接从百度网盘下载吧!)

不想给楼主贡献金币的话可以点我从百度网盘中下载。(提取码:ruat,失效的话可以联系我)

下载解压之后,傻瓜式安装。

注意:一定要找一个简单合适的文件夹存入。否则后期启动neo4j时,在cmd打开文件夹都需要多点几下。例如,我存在 D:\neo4j 文件夹下

二、配置与使用

因为neo4j是一站式安装,所以在我印象中并没有设置什么环境变量。

安装完成之后打开cmd,进入到安装neo4j文件夹bin目录下。以自己的为例进入到 D:\neo4j\neo4j-community-3.5.5\bin 之后输入以下内容如图。

cmd中提示“Neo4j service started”,就代表我们已经把neo4j启动完成。

可以打开浏览器输入

http://localhost:7474/browser/

进入到neo4j数据库中。

准备完成之后可以进入到下一步。

三、使用方法

知己知彼,方能百战百胜

前期工作做好之后,我们就要开始慢慢了解怎么使用他。

科普内容(非计算机专业建议看一下):

计算机专业离散必修课中有很重要的一个知识点:

定义: 图是由顶点的有穷非空集合和顶点之间边的集合组成, 通常表示为: G(V,E), 其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。

不喜欢官方说法的同学,我给降维到猫猫水平解释下。

图片中一共有三个点(V1、V2、V3)和两条边(E1、E2),整体看做为一个图G。这个图是由三个点和两条边构成。以上就可以看做一个简单图的构成。

如果把V1、V2、V3比作人物的话,E1、E2就可以当做人物间的联系。

V1:大雄
V2:静香
V3:哆啦A梦

E1:好朋友
E2:同学(未来可妻)

那么,我们就可以得到以下这种关系。

上面这样的图大家是不是很清晰的了解到这三个人物之间的关系呢?
如果无感的,那下面这种感觉对比一下。哪个图片更加直观有效。

因为以上数据太少,可能比较不明显。
来一个比较极端的,以下表格有三万多条数据,光看表格是在费劲。


使用图形式的来展示人物之间的关系,是不是就相对直观很多。

以下内容以三国举例。
在neo4j页面的执行框中写入Cypher语句,不熟悉这种语言的同学可以参考以下模板举一反三。

1、创建节点(增)

1.1 创建单个节点

create (:person{name:"孙权"})

这条语句直接创建了孙权节点,即上图中的圈圈。

1.2 创建两个节点

与之相对应的是同时创建两个节点并建立两者关系

create (:person{name:"周瑜",age:25})-[:夫妻]->(:person{name:"小乔",age:20});


建立成功。

备注:
从上述语句中,给读者解释一下。
( ):中间的内容代表节点
{ }:中间的内容代表属性
[ ]:中间内容代表关系

以上均是英文字符。

2、查找节点(查)

刚刚建立的节点怎么样才能找到呢?

return (:person{name:"周瑜"})-->();

如图

这样我们就能查找到周瑜节点,同时数据库中也会自动匹配出与之建立关系的节点。

如果想查多重层数的关系可以自行深入学习,这里不做过于深入的探讨。

3、匹配关系(增、找)

什么叫关系?得先有两个实体,两种实体之间存在着某种联系可以称为关系。虹猫和蓝兔有关系,我和三舅妈的邻居表弟同学妈妈的三姨母的女儿有联系吗?估计没有。

同样,想要建立联系,首先要建立两个节点才有可能建立关系。

3.1 同时建立节点和关系

这个写法见本文1.2

3.2 直接匹配关系

这种情况是建立在已有的两个节点。

此时数据库已经有孙权,周瑜,小乔的关系了。我可以匹配孙权和周瑜的关系,没问题。但是我要是想建立孙权和大乔的关系可以吗?

当然不行!!! 因为数据库中还没有建立大乔的节点,此时建立关系,会直接报错。

match (a:hperson{name:"孙权"}) match (b:person{name:"周瑜"}) create (a)-[r:基友]->(b) return r;

此时在查找周瑜的节点:
因为我在周瑜与孙权建立了双向关系,

match (a:hperson{name:"孙权"}) match (b:person{name:"周瑜"}) create (a)<-[r:基友]-(b) return r;

仔细看看这句话和上一条语句有什么不同?

此时已经有了三个节点和两条关系。

试错:如果硬把大乔和孙权建立关系,数据库会给出以下提示。

四、高级用法

以上内容均是小打小闹,手动建立节点和关系也太过儿戏。

现代的数据以万为计数单位都算是小的不能再小了。

现在有一个表格的数据,里面包含着几十万条关系,甚至百万千万,手动建立匹配就有点说不过去了吧!

现在介绍一下手动和自动两种方式导入数据库中。

4.1 手动导入

首先我们规定下数据存储格式。

以csv文件为例。我们需要一个表格包含人物节点的内容(nodes.csv),另一个表格包含人物间关系的内容(relations.csv)。

表格来源gayhub,初学时这篇文章对我帮助很大,感谢大佬分享。

节点表格(nodes.csv):

关系表格(relations.csv):

把两个csv文件放入 D:\neo4j\neo4j-community-3.5.5\import 目录下,之后在neo4j页面执行框内输入

LOAD CSV  WITH HEADERS FROM 'file:///nodes.csv' AS data CREATE (:star{starname:data.name, starid:data.id});LOAD CSV  WITH HEADERS FROM "file:///relations.csv" AS relationsMATCH (entity1:star{starname:relations.subject}) , (entity2:star{starname:relations.object})CREATE (entity1)-[:relation{relation: relations.relation}]->(entity2)

然后所有数据瞬间导入数据库中,速度就是那么快。

4.2 自动导入

这个需要有好几种方法,埋个坑,有兴趣了解的同学可以留言评论或私信我都可。

最后上个简单的效果图吧。

收工,洗洗睡去了。

对了, 感兴趣的小伙伴可以关注我的个人公众号:小惑有观察。现在开始恢复更新。

用Neo4j图形数据库打造专属于你的高bigger关系图相关推荐

  1. 腾讯会议开放API接口,为企业打造专属的“腾讯会议”

    远程办公需求在疫情期间爆发,推动各行各业加速企业内外部协同效率的数字化改造.基于这样的背景,腾讯会议宣布开放API接口,无论是企业IT.系统集成商.SaaS服务商,均可轻松适配多种会议场景需求,同时还 ...

  2. 用U盘打造专属个人的微型护航系统--winpe

    用U盘打造专属个人的微型护航系统--winpe 具体做法是: 1.准备材料:①老毛桃winpe操作系统  (原版大小仅为109.2M,后缀是ISO的) ②U盘 不用太大,120M就行,一般市面上的U盘 ...

  3. ChatGPT 拓展资料:Telegram Bot 打造专属聊天机器人

    ChatGPT 拓展资料:Telegram Bot 打造专属聊天机器人

  4. 中信银行上线票付通产品 为电商打造专属电票服务

    中新网1月30日电 日前,随着银耐联平台817万元耐火材料订单的线上票据支付成功,中信银行"票付通"产品实现上线投产.作为上海票据交易所第一批试点金融机构,中信银行首发推出业内全新 ...

  5. 何金昌内增高鞋 专业打造专属时尚范儿网厄瓜多尔1季度皮革生产价格指数涨幅明显

    何金昌内增高鞋 专业打造专属时尚范儿网厄瓜多尔1季度皮革生产价格指数涨幅明显 另一名在莫斯科留学的华人学生齐莉(化名)用照片记录了这两天的场景:当地香奈儿和爱马仕的货架已被扫空,OMEGA IWC店里 ...

  6. neo4j图形数据库第七弹——整合vis.js实现数据可视化

    正经学徒,佛系记录,不搞事情 基于上文:https://blog.csdn.net/qq_31748587/article/details/84232352  vis.js的项目 基于上文:https ...

  7. 无线WiFi安全渗透与攻防(二)之打造专属字典

    系列文章 无线WiFi安全渗透与攻防(一)之无线安全环境搭建 打造专属字典 什么在破解之前先准备专用字典,因为对于一般家庭来说,常用 一个是预共享密钥PSK,一个是PIN码. 也不是所有的路由都开起了 ...

  8. 如何打造一款专属于自己的高逼格电脑桌面

    作为一名电脑重度使用者,你是否拥有一款属于你自己的高逼格电脑桌面呢?你是不是也像大多数同学一样,会把所有的内容全部都堆积到电脑桌面,不仅找东西困难,由于桌面内容太多还会导致C盘空间不足,影响电脑的反应 ...

  9. Neo4j 图形数据库

    目录 Neo4j 基础 什么是Neo4j Neo4j 模块构建 Neo4j的主要应用场景 Neo4j 环境搭建 Docker 安装Neo4j Neo4j数据浏览器 Neo4j CQL CQL简介 Ne ...

  10. vue使用neovis操作neo4j图形数据库

    目录 1.前言: 2.优缺点 3.如何使用 1.前言: 由于项目需要在前端展示关系图,常规的做法是,后端操作数据库返回Json数据,前端使用d3或者echarts进行展示,奈何因为后端不给力(说是无法 ...

最新文章

  1. MySQL二进制日志文件过期天数设置说明
  2. 设计模式——UML图
  3. java字符函数_java字符串函数用法汇总
  4. 使用generator自动生成Mybatis映射配置文件
  5. Linux中级之lvs三个模式的图像补充(nat,dr,tun)
  6. DOA算法1:MUSIC算法(二)
  7. C语言阶梯电费函数,用阶梯电价计算逻辑学习销售人员阶梯提成计算函数
  8. atom cpu linux死机,ATOM处理器编译性能还是堪忧啊
  9. 毛玻璃 / 玻璃拟态 处理 backdrop-filter 兼容性问题
  10. 电脑重装系统需要多少钱?
  11. java 解析json字符串
  12. vue+flv.js实现视频播放
  13. 手机端获取用户详细地理位置(高德地图API)
  14. 【雅思大作文考官范文】——第十二篇:'positive or negative' essay
  15. 华南师范大学校园网自动登录教程
  16. 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。 请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。如下实例。示例 :输入: 1->2->3->4-
  17. 火狐浏览器(firefox)简体中文最新版下载:
  18. linux系统界面图形化操作步骤
  19. ADBKeyBoard.apk 切换Android输入法完美解决中文输出
  20. 软件开发工程师个人简历模板3篇

热门文章

  1. QT4升级QT5调研报告
  2. UNITY_DOTWEEN_PATH路径动画的使用
  3. [python]有关Python的import...和from...import...的区别
  4. span 居中_H5元素的水平垂直居中布局总结
  5. python做人工智能-马哥教育官网-专业Linux培训班,Python培训机构
  6. Spring bean注入之constructor-arg注入和property注入的区别
  7. linux的使用 --- 虚拟机创建CentOS(Intel VT-X)
  8. css四种定位及相关知识总结(附实例、图解)
  9. LintCode—链表节点计数(466)
  10. asp.net 2.0中页的生存周期(Lifecycle)和动态控件[转]