第1章 图数据库与 Neo4j 起步


文档摘要

第 1 章 · 图数据库与 Neo4j 起步 章节摘要:这一章解决一个入门期最容易糊掉的问题:图数据库到底和关系数据库差在哪,以及这种差异值不值得你换一套思维。我们从一次令人痛苦的多表自连接讲起,引出属性图模型的四件积木——节点、关系、属性、标签;随后认识 Neo4j 这个具体产品凭什么成为图数据库的事实标准;最后亲手装好环境、导入示例数据、跑通第一条 Cypher。读完本章,你会拥有一个能跑的 Neo4j、一个可以当公共沙盘的示例图,和一套判断"数据该不该图化"的初步直觉。 学习目标 读完本章,你应当能够: 说清关系模型与图模型在表达"多对多关联"时的结构差异,并指出各自适合的负载; 不看资料画出属性图模型的四件积木,解释标签与关系类型各自承担的职责;

第 1 章 · 图数据库与 Neo4j 起步

章节摘要:这一章解决一个入门期最容易糊掉的问题:图数据库到底和关系数据库差在哪,以及这种差异值不值得你换一套思维。我们从一次令人痛苦的多表自连接讲起,引出属性图模型的四件积木——节点、关系、属性、标签;随后认识 Neo4j 这个具体产品凭什么成为图数据库的事实标准;最后亲手装好环境、导入示例数据、跑通第一条 Cypher。读完本章,你会拥有一个能跑的 Neo4j、一个可以当公共沙盘的示例图,和一套判断"数据该不该图化"的初步直觉。

学习目标

读完本章,你应当能够:

  1. 说清关系模型与图模型在表达"多对多关联"时的结构差异,并指出各自适合的负载;
  2. 不看资料画出属性图模型的四件积木,解释标签与关系类型各自承担的职责;
  3. 判断 Neo4j 的"免索引邻接"为什么能让关联查询成本与数据总量无关;
  4. 在本机完成 Neo4j 安装、启动、密码初始化,认得 Browser 的基本操作区;
  5. 装载 Movie 示例图,用 MATCH 查出"汤姆·汉克斯演过哪些电影"并读懂结果;
  6. 对手头业务做一次粗筛:哪些表适合迁进图,哪些留在原处。

核心概念速览

一张全景图把本章的概念关系摆正:图模型是理论,Neo4j 是实现,Cypher 是操作它的语言,环境与示例图是练习场。

一句话概括本章:关系数据库把连接当计算,图数据库把连接当存储。

子章节导航

1.1 从关系表到图——从一个具体的查询难题出发:在关系库里查"朋友的朋友喜欢的电影"要写几层自连接,为什么会越写越慢;图模型如何用一张白纸就能画出的结构化解它。这一节负责建立"为什么"。

1.2 属性图模型与 Neo4j——把白纸上的涂鸦变成工程语言:节点、关系、属性、标签各是什么、怎么命名、有什么设计惯例;Neo4j 的免索引邻接如何让"走一步"的成本是常数级的。这一节负责建立"是什么"。

1.3 环境搭建与第一条 Cypher——装好社区版,进 Browser,初始化密码,导入 Movie 示例图,跑通你人生第一条 MATCH。所有操作带命令、带预期输出。这一节负责"跑起来"。

子章节之间的逻辑关系

三节是一条"问题 → 模型 → 工具"的因果链:没有 1.1 的痛点,1.2 的模型就是一堆无用的名词;没有 1.2 的模型,1.3 的环境就只是一个空壳软件。顺序不能颠倒,跳跃也不划算。

关联查询之痛(1.1) │ 痛点驱动 ▼ 属性图模型四件积木(1.2) │ 模型落地 ▼ 装环境跑通第一条查询(1.3) ──► 第2章 用 Cypher 开始漫游

走完本章的自测清单

用五个问题验收本章成果,答不上来的回到对应小节:

  1. 关系库查"朋友的朋友的朋友"为什么慢?免索引邻接怎么解决它?
  2. 属性图的四件积木各承担什么?关系上的属性适合放什么数据?
  3. 标签与属性在"分类"这件事上怎么分工?
  4. 7474 与 7687 两个端口各是什么角色?
  5. 你的业务数据里,哪一部分符合"深关联"判据?

前置知识与后续延伸

前置:会基本的 SQL(SELECT 与 JOIN 即可);用过任意一种命令行终端;对"数据库"有直觉即可,不需要 DBA 经验。完全没写过 SQL 也能读,个别对照处跳过不影响主线。

后续:本章的示例图会一路用到第 3 章;第 2 章将从 MATCH 关键字开始,带你真正走进 Cypher 的查询漫游。若你在 1.3 安装环节遇到端口占用或启动失败,先记下报错,第 3 章的运维一节有系统的排查清单。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U