初识Neo4j之入门介绍(一)

一、介绍

Neo4j 是一个原生图数据库,这意味着它自底向上地实现了真正的图模型。Neo4j 并不是在其他技术之上叠加一个"图抽象层",而是将数据以用户在白板上绘制想法的方式直接存储在数据库中。上述这段话的意思是,Neo4j 并不像有些其他数据库(比如基于关系型或文档型数据库)那样先用传统的存储方式保存数据,再在上面加一层,让用户感觉自己在用图数据库。相反,Neo4j 从数据存储的最底层开始,就是按照图的结构设计和实现的:节点和关系(边)就是底层的基本单位,数据的存储、访问和查询都原生支持图模型。这就像你在白板上点出几个点(节点)、再用线(关系)把这些点连接起来。在 Neo4j 里,数据结构和你脑海中的图是一致的,没有额外的复杂转换层。这样不仅易于理解,也让处理复杂关系和多层连接的数据变得非常高效。

二、Neo4j的生态

Neo4j以属性图数据库为核心,提供了一个由工具、应用程序和库组成的生态系统,该生态系统旨在帮助用户快速上手这项技术。

1)Aura

  • 定义:Neo4j Aura是Neo4j官方的完全托管云服务产品(Database-as-a-Service)。
  • 作用:用户可以在云端快速创建、扩展、管理和访问Neo4j数据库,无需自己部署或维护服务器。

2)Cypher

  • 定义:Cypher是Neo4j的专用图查询语言(类似SQL之于关系型数据库),用来描述模式、查询、插入与操作图数据。
  • 作用:开发者用Cypher语句进行节点、关系创建、查询、更新和删除等操作,是使用Neo4j的核心交互语言。

3)Drivers & APIs

  • 定义:指各种编程语言(Java、Python、JavaScript等)的官方或社区开发的连接库和接口。

  • 作用:应用程序可以通过这些驱动,用代码与Neo4j数据库进行通信、发送Cypher指令、获取数据结果等。

4)Connectors

  • 定义:实现Neo4j与其它系统或数据库的数据交换、集成方案的工具/插件。
  • 举例
    • JDBC Connector:让Neo4j像表格一样被SQL工具访问。
    • ETL工具:如Neo4j ETL,便于从关系型数据库导入数据。
    • Kafka Connector:支持与流处理系统集成。

5)Tools

  • 定义:指与Neo4j配套的桌面应用、命令行工具、插件等。
  • 常见工具
    • Neo4j Desktop:本地开发图数据库的客户端。
    • Neo4j Browser:Web下图形化Cypher查询和结果展示工具。
    • Neo4j Bloom:面向业务人员的图探索和可视化工具。
    • 管理员工具:迁移、监控、备份等。

6)Graph Data Science

  • 定义:Neo4j Graph Data Science(GDS)是Neo4j的一套用于图分析和机器学习的算法库和工具集。
  • 作用:用于关系挖掘、社群发现、节点排名、图特征工程等数据科学任务,支持大规模图算法计算,深度探索图结构中的知识。

7)Visualization

  • 定义:指将图数据以节点-关系图等形式可视化展示,便于理解和探索。
  • 实现方式
    • 利用Neo4j Browser、Bloom或第三方工具(如Gephi、Graphistry)进行节点和关系的可视化。
    • 可嵌入到应用程序的前端。

三、如何与Neo4j交互

Neo4j 使用一种类似于 SQL 的声明式查询语言Cypher,并且它针对图数据进行了优化。另一个选择是使用库,Neo4j目前支持Java、JavaScript、. net、Python、Go、GraphQL、Spring等。

四、创建Neo4j实例

部署方法包括:全托管的云服务、自主管理云服务以及自主管理的本地部署。

相关推荐
JohnYan20 分钟前
工作笔记 - 一种业务信息汇报机制的设计和实现
数据库·后端·postgresql
sq8001 小时前
EFCore ORM 数据库数据表迁移
数据库·后端·orm
小徐不徐说1 小时前
深入理解 Qt 信号与槽机制的底层逻辑
数据库·c++·qt·面试
一只小小汤圆1 小时前
qt 心跳包
服务器·数据库·qt
巴里巴气2 小时前
MongoDB事务和隔离级别的原理
数据库·mongodb
什么半岛铁盒2 小时前
MySQL的常用数据类型详解
linux·数据库·mysql·adb
rannn_1112 小时前
【MySQL学习|黑马笔记|Day1】数据库概述,SQL|通用语法、SQL分类、DDL
数据库·后端·学习·mysql
mrbone112 小时前
C++-关于协程的一些思考
开发语言·数据库·c++·c++20·协程·异步·coroutines
Antonio9152 小时前
【MySQL】MySQL 缓存方案
数据库·mysql·缓存
越来越无动于衷5 小时前
基于 JWT 的登录验证功能实现详解
java·数据库·spring boot·mysql·mybatis