最详细的Neo4J解读(附安装教程)

一、Neo4j简介

Neo4j是一种流行的基于Java语言编写的图形数据库。图是一组节点和连接这些节点的关系。图形数据库也被称为图形数据库管理系统GDBMS, 其他的图形数据库是Oracle NoSQL数据库OrientDBHypherGraphDBGraphBaseInfiniteGraphAllegroGraph

二、Neo4j - 特点和优势

1.Neo4j的特点

 - SQL就像简单的查询语言Neo4j CQL
 - 遵循属性图数据模型
 - 通过使用Apache Lucence支持索引
 - 支持UNIQUE约束
 - 包含一个用于执行CQL命令的UI:Neo4j数据浏览器
 - 支持完整的ACID(原子性,一致性,隔离性和持久性)规则
 - 采用原生图形库与本地GPE(图形处理引擎)
 - 支持查询的数据导出到JSON和XLS格式
 - 提供了REST API,可以被任何编程语言(如Java,Spring,Scala等)访问
 - 提供了可以通过任何UI MVC框架(如Node JS)访问的Java脚本
 - 支持两种Java API:Cypher API和Native Java API来开发Java应用程序

2.Neo4j的优点

 - 很容易表示连接的数据
 - 检索/遍历/导航更多的连接数据是非常容易和快速的
 - 非常容易地表示半结构化数据
 - Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习
 - 使用简单而强大的数据模型
 - 不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引

3.Neo4j的缺点或限制

 - AS的Neo4j 2.1.3最新版本,具有支持节点数,关系和属性的限制
 - 不支持Sharding

三、Neo4j - 数据模型

Neo4j图数据库遵循属性图模型来存储和管理其数据。

属性图模型规则

 - 表示节点,关系和属性中的数据
 - 节点和关系都包含属性
 - 关系连接节点
 - 属性是键值对
 - 节点用圆圈表示,关系用方向键表示
 - 关系具有方向:单向和双向
 - 每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”
  • 在属性图数据模型中,关系应该是定向的。如果我们尝试创建没有方向的关系,那么它将抛出一个错误消息。
  • 在Neo4j中,关系也应该是有方向性的。如果我们尝试创建没有方向的关系,那么Neo4j会抛出一个错误消息,“关系应该是方向性的”。
  • Neo4j图数据库将其所有数据存储在节点和关系中。我们不需要任何额外的RDBMS数据库或无SQL数据库来存储Neo4j数据库数据。它以图形的形式存储其数据的本机格式。
  • Neo4j使用本机GPE(图形处理引擎)引擎来使用它的本机图存储格式。
  • 图形数据库数据模型的主要构建块是:
 - 节点
 - 关系
 - 属性
  • 简单的属性图的例子
  • 12
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Neo4j是一个高性能的开源图形数据库,它使用图形结构存储数据,并提供了强大的查询语言Cypher。下面是一个简单的Java Neo4j教程,帮助你开始使用Neo4j。 ## 1. 安装Neo4j 首先,你需要安装Neo4j数据库。你可以从官方网站下载Neo4j,然后按照说明进行安装。 ## 2. 添加Neo4j驱动程序 接下来,你需要添加Neo4j Java驱动程序作为项目的依赖项。你可以在Maven中添加以下依赖项: ```xml <dependency> <groupId>org.neo4j.driver</groupId> <artifactId>neo4j-java-driver</artifactId> <version>4.2.3</version> </dependency> ``` ## 3. 连接到Neo4j数据库 要连接到Neo4j数据库,你需要使用其URI和凭据。以下是一个简单的Java代码示例,描述如何连接到Neo4j数据库: ```java String uri = "bolt://localhost:7687"; String username = "neo4j"; String password = "password"; Driver driver = GraphDatabase.driver(uri, AuthTokens.basic(username, password)); Session session = driver.session(); ``` ## 4. 创建节点 要创建一个节点,你需要使用CREATE命令和节点标签。以下是一个简单的Java代码示例,用于创建一个名为“Person”的节点: ```java String name = "John"; int age = 30; String createQuery = "CREATE (p:Person {name: $name, age: $age})"; session.run(createQuery, Values.parameters("name", name, "age", age)); ``` ## 5. 查询节点 要查询节点,你需要使用MATCH命令和节点标签。以下是一个简单的Java代码示例,用于查询所有名为“Person”的节点: ```java String matchQuery = "MATCH (p:Person) RETURN p.name AS name, p.age AS age"; Result result = session.run(matchQuery); while (result.hasNext()) { Record record = result.next(); String name = record.get("name").asString(); int age = record.get("age").asInt(); System.out.println(name + ", " + age); } ``` ## 6. 关闭连接 当你完成与Neo4j数据库的交互时,你应该关闭连接。以下是一个简单的Java代码示例,用于关闭连接: ```java session.close(); driver.close(); ``` 这些是一个简单的Java Neo4j教程的主要步骤。你可以通过阅读Neo4j的官方文档来深入了解Neo4j的更多功能。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Abnerek

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值