-Neo4j-图数据库教程
Neo4j 图数据库教程
一、基础概念
1.1 什么是 Neo4j
Neo4j 是一款开源的高性能 NoSQL 图数据库,采用原生图数据存储方式,使用 Scala 和 Java 语言开发。它遵循属性图模型,提供专属的
Cypher 查询语言,擅长处理复杂的关系数据,广泛应用于社交网络、推荐系统、知识图谱等领域。1.2 核心组件
节点(Node :表示图数据库中的实体,可包含多个属性和标签。
关系(Relationship:用于连接两个节点,是有方向性的,也可包含属性。
属性(Property:是键值对,用于描述节点和关系。
标签(Label:用于将节点分组,便于管理和查询。
二、环境搭建
2.1 安装方式
Neo4j Enterprise Server(企业版):功能强大,适合企业级应用。
Neo4j Community Server(社区版):免费开源,功能较为全面(建议安装)。
Neo4j Desktop(桌面版)* :集成 neo4j 数据库程序与浏览器,使用方便。
2.2 安装步骤
1 安装 JDK :Neo4j 需要 JDK 支持,如 neo4j 4.3.6 版本需要 JDK 11 及以上版本。
2 下载 Neo4j :从官网()选择适合的版本下载。
3 配置环境变量:添加 NEO4J_HOME 系统变量,将 %NEO4J_HOME%\bin 添加到 path 变量中。
4 启动服务:在命令行中输入 neo4j.bat install-service 安装服务,再输入 neo4j.bat start 启动服务。
5 访问浏览器界面:打开浏览器,访问
,使用默认用户名和密码(neo4j)登录。
三、数据操作
3.1 创建数据
创建节点:使用 CREATE 语句,如 CREATE (n:Person {name:'Alice', age:25});
。
创建关系:如 CREATE (n)-[:KNOWS {since:2020}]->(m);
,其中 n
和 m
是已存在的节点。
3.2 查询数据
查询所有节点 :MATCH (n) RETURN n LIMIT 25;
。
查询特定标签的节点 :MATCH (n:Person) RETURN n;
。
*查询节点的关系 :MATCH (n)-[r]->(m) RETURN r;
。
3.3 更新数据
更新节点属性 :MATCH (n:Person {name:'Alice'}) SET n.age = 26;
。
*更新关系属性:MATCH ()-[r:KNOWS {since:2020}]->() SET r.since = 2019;
。
3.4 删除数据
删除节点 :MATCH (n:Person {name:'Alice'}) DETACH DELETE n;
,先删除节点的所有关系,再删除节点本身。
删除关系:MATCH ()-[r:KNOWS]->() DELETE r;
。
四、高级应用
4.1 索引与约束
创建索引 :CREATE INDEX FOR (n:Person) ON (n.name);
,可加速基于该属性的查询。
创建唯一约束 :CREATE CONSTRAINT FOR (n:Person) REQUIRE n.id IS UNIQUE;
。
4.2 数据库管理
备份数据库 :使用 neo4j-admin dump --database=graph.db --to=backup_path
命令。
恢复数据库 :使用 neo4j-admin load --from=backup_path --database=graph.db
命令。
4.3 性能优化
查询性能优化:在 Neo4j 浏览器中使用 EXPLAIN
或 PROFILE
关键字查看查询执行计划和性能信息。
*配置缓存大小 :修改 Neo4j 的配置文件 neo4j.conf
中的 dbms.memory.pagecache.size
参数。
4.4 集成开发
Java API:Neo4j 提供 Java API,可在 Java 程序中直接调用,实现图数据库的功能。
其他语言的 Driver API :支持多种编程语言的 Driver API,如 Python、JavaScript 等,方便不同语言的开发者进行集成开发。