Neo4j 图数据库基础入门
适用对象:开发者、数据工程师、AI/知识图谱从业者 前置知识:了解基本数据库概念即可 版本:Neo4j Community Edition 5.x + Cypher 查询语言
一、什么是图数据库?为什么需要它?
📌 传统关系型数据库的局限
- 处理'关联查询'效率低(如'朋友的朋友'需多层 JOIN);
- 随着关联深度增加,查询性能急剧下降(N+1 问题);
- 数据模型难以直观表达复杂关系(如社交网络、知识图谱)。
✅ 图数据库的优势
- 以'关系'为核心,直接存储实体及其连接;
- 查询关联数据时间复杂度接近常数级(O(1) ~ O(k));
- 模型更贴近现实世界(人 - 人、商品 - 用户、疾病 - 症状等)。
💡 图数据库 ≠ 图形可视化,而是指以图论为基础的数据存储与查询模型。
二、Neo4j 是什么?
Neo4j 是目前最流行、功能最完善的 原生图数据库(Native Graph Database),由 Neo4j Inc. 开发,支持 ACID 事务、高可用、水平扩展(企业版)。
核心特点:
- 原生图存储引擎(非基于 RDF 或关系表模拟);
- 使用 Cypher 声明式查询语言(类似 SQL,但为图设计);
- 内置可视化浏览器(Browser UI);
- 支持 REST API、多种语言驱动(Python、Java、JavaScript 等);
- 社区版免费,企业版支持集群与高级安全。
三、图数据库核心概念(Property Graph Model)
Neo4j 采用 属性图模型(Property Graph),包含三个基本元素:
| 元素 | 说明 | 示例 |
|---|---|---|
| 节点(Node) | 实体,可带标签(Label)和属性(Key-Value) | (:Person {name: "张三", age: 30}) |
| 关系(Relationship) | 有向连接两个节点,必须有类型(Type)和可选属性 | -[:FRIEND]->、-[:BOUGHT {date: "2025-12-01"}]-> |
| 属性(Property) | 键值对,存储在节点或关系上 | {name: "李四"}、{since: 2020} |
🔑 关键理解:节点可有多个标签(如
:User:Customer);关系有方向(A → B ≠ B → A),但查询时可忽略方向;所有数据都通过'模式匹配'来查询,而非 JOIN。

