关系型数据库写多了,遇到「好友的好友的好友」「推荐路径」「欺诈环路」这类问题,第一反应往往是硬写多表 JOIN。能查出来,但语句长、层次一深就失控,改一次需求改一次 SQL。Neo4j 的定位正是补上这块缺口:把「关系」当成一等公民存储,用 Cypher 直接描述点和边的模式。这门课围绕 Neo4j 4.X 展开,从装环境一路讲到 Java API 落地,适合已经会写 SQL、但对图模型还没建立直觉的人。
先确认自己缺的是哪一块
- 知道图数据库这个词,但说不清「节点、关系、属性、标签」在建模时怎么取舍;
- 看得懂 Cypher 的 MATCH,自己写多跳查询和变长路径时就开始猜;
- 会敲命令行跑查询,但项目里要用 Java 代码访问图库,不知道从哪接;
- 4.X 版本的一些变化(比如新版驱动、连接配置)没跟上,照着旧教程跑不通。
如果以上有一条对得上,这门课的内容就是冲着它去的;如果只是想找个「图数据库入门科普」,看完前几节基本就够,后面的 API 部分可以先放着。
Cypher 是这门课真正要练的东西
环境搭建只是开场,重点是 Cypher。它和 SQL 最大的差别在于:SQL 描述「要什么结果」,Cypher 描述「数据长什么样」。你要写的是路径模式,而不是表连接条件。课程从基础语法讲到高级用法,真正的分水岭在于变长路径、路径过滤、聚合与 WITH 分段这几处——写得不顺,多半是卡在这里。学的时候建议边看边在浏览器里改条件,把同一段模式加上不同的跳数、不同的过滤条件,看结果集合怎么变,比死记语法有效得多。
另一件容易忽略的事是索引和约束。图查询快了是路径短,慢了往往是起点没定位好。哪类属性该建索引、唯一约束怎么加,课程里有对应的段落,别跳过。
Java API 那部分决定能不能进项目
会用命令行查数据,和能在服务里用是两回事。这一块涉及驱动的引入、会话的创建与释放、参数化查询、事务边界,以及查询结果怎么映射成对象。最容易出问题的是会话和事务的生命周期管理——写完就跑没事,压一压就暴露连接泄漏。看这部分时,请顺手把自己项目里的一个关联查询换成图查询试试,哪怕只是个小场景,也比只看示例代码记得牢。
看完应该能回答这些问题
- 同一个「多对多 + 多层关系」的需求,用关系表和图模型分别怎么表达,各自代价在哪?
- 一条变长路径查询,怎么限定跳数、怎么避免把整个图都扫一遍?
- Cypher 里的 WITH 什么时候必须用,它和 SQL 的子查询差别在哪?
- Java 侧创建会话、执行查询、关闭资源的正确顺序是什么?参数为什么要绑而不是拼字符串?
- 4.X 版本的连接配置和驱动用法,和旧版本比要注意什么?
这些问题能顺畅答出来,说明这门课的核心部分你已经吃透了;答不出的那一条,回去补哪一节也就清楚了。
图数据库Neo4j 4.X从入门到实战
课程详情
课程标题:图数据库Neo4j 4.X从入门到实战
本课程旨在帮助学员从零开始,逐步深入掌握图数据库Neo4j 4.X的使用。课程内容全面,从搭建Neo4j环境开始,逐步讲解Neo4j的基础知识及Cypher高级用法,并深入探讨Neo4j Java API的应用。
适合人群
- 对图数据库感兴趣的技术爱好者
- 希望学习Neo4j并应用于实际项目的开发者
- 数据库管理员和系统架构师
学习收获
- 掌握Neo4j 4.X的安装与配置
- 深入了解Neo4j图数据库的基本概念和原理
- 熟练运用Cypher查询语言进行数据操作
- 学习Neo4j Java API进行应用开发
课程亮点
- 基于最新4.0版本,紧跟技术发展
- 理论与实践相结合,注重实战操作
- 系统讲解,从入门到精通
- 丰富的案例,帮助学员快速上手
课程目录
第一章 Neo4j课程导学
课程导学
Neo4j课程导学视频
第二章 Neo4j基础知识
课程说明
今日大纲
图论
图论(柯尼斯堡七桥问题)
数据库发展历史
Neo4j快速入门(课程资料在此节下载~ )
什么是Neo4j以及版本说明
部署安装(Windows版本安装)
部署安装(Linux版本安装)
部署安装(docker版本安装)
Neo4j web 工具介绍
数据结构
示例:与MySQL的对比
Cypher入门
创建数据
查询数据(MATCH、关系深度查询)
查询数据(OPTIONAL MATCH、WHERE、SKIP、LIMIT、WITH)
更新数据
删除数据
实例讲解
好友推荐
官方电影示例讲解
课程总结
课程总结
第三章 Neo4j进阶
课程说明
今日大纲
Cypher进阶
Cypher进阶之Aggregation聚合函数(count())
Cypher进阶之Aggregation聚合函数(统计函数、collect()函数)
Cypher进阶之UNWIND
Cypher进阶之FOREACH
Cypher进阶之MERGE
Cypher进阶之UNION
Cypher进阶之LOAD CSV
Cypher进阶之CALL
Cypher函数之断言函数
Cypher函数之标量函数
Cypher函数之列表函数
Cypher函数之数学函数、字符串函数
Cypher索引入门
APOC入门
下载以及安装
APOC的使用(创建数据)
UUIDs、APC操作
Generating Graphs、读取MySQL数据
Neo4j Java Api
Neo4j Java Api之Hello World(上)
Neo4j Java Api之Hello World(下)
Neo4j Java Api之Cypher工作流程
Neo4j Java Api之CRUD案例
Neo4j-OGM入门
Neo4j-OGM入门之编写实体
Neo4j-OGM入门之CRUD
Neo4j-OGM入门之获取关系属性
Neo4j-OGM入门之深度级联查询
课程总结
课程小结
第四章 Neo4j实战
课程说明
课程大纲
Spring Data Neo4j入门
Spring Data Neo4j之介绍
Spring Data Neo4j之编写代码(手动配置)
Spring Data Neo4j之编写代码(自动配置)
Spring Data Neo4j之查询数据
Spring Data Neo4j之保存数据
Spring Data Neo4j之更新数据、删除数据
Spring Data Neo4j之事务管理
豆瓣电影功能实现
豆瓣电影功能分析
豆瓣电影功能开发之搭建工程以及设计实体
豆瓣电影功能开发之导入数据(讲解数据)
豆瓣电影功能开发之搭建web环境
豆瓣电影功能开发之名人页(基本信息、家庭成员)
豆瓣电影功能开发之名人页(合作2次以上的影人)
豆瓣电影功能开发之影片页(电影推荐)
课程总结
课程总结
第五章 Neo4j高级
课程说明
今日大纲
Neo4j集群
简介
核心服务器
只读副本、因果一致性
搭建集群
增加副本节点
增加core节点
容灾测试
SDN中使用集群
数据库管理
数据库管理
数据库管理(补充)
安全认证
安全认证(角色管理)
安全认证(用户管理、权限控制)
查询性能优化
查询性能优化(Explain 与 Profile)
查询性能优化(操作符)
查询性能优化(优化案例)
Cypher扩展
Cypher扩展
运维管理
运维管理(内存调优)
运维管理(备份)
运维管理(恢复)
运维管理(dump与load)
课程总结
课程总结




