Neo4j 基础概念

概述

Neo4j 是一个高性能的 NoSQL 图形数据库,并且完全支持 ACID(原子性、一致性、隔离性、持久性)数据库事务属性;采用 Java 语言编写,由于其良好的图形数据模型设计,Neo4j 的数据非常快。
部署一个neo4j服务器便可以承载上亿级的节点和关系。单单节点无法承载我们的数据需求时,可以进行分布式集群部署。

Neo4j 特点和优势
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 应用程序;
Neo4j 的优点
  • Neo4j 很容易表示连接的数据;
  • 检索 / 遍历 / 导航更多的连接数据是非常容易和快速的;
  • 非常容易的表示半结构化数据;
  • Neo4j CQL 查询语言命令是人性化的可读格式,易于学习;
  • 使用简单而强大的数据模型;
  • 不需要复杂的连接来检索连接的 / 相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引;
Neo4j 的缺点或限制
  • AS 的 Neo4j 2.1.3 最新版本,它具有支持节点数,关系和属性的限制;
  • 不支持 Sharding;
Neo4j 数据模型
Neo4j 属性图形数据模型

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

属性图模型规则

  • 表示节点,关系和属性中的数据;
  • 节点和关系都包含属性;
  • 关系连接节点;
  • 属性是键值对;
  • 节点用圆圈表示,关系用方向键表示;
  • 关系具有方向:单向和双向;
  • 每个关系包含 “开始节点” 或 “从节点” 和 “到节点” 或 “结束节点”;

在属性图数据模型中,关系应该是定向的。如果尝试创建没有方向的关系,将会抛出错误信息。

Neo4j 图数据库将其所有数据存储在节点和关系中,不需要额外的 RRBMS数据库 或 无SQL数据库 来存储 Neo4j 数据库数据,以图形的形式存储其数据的本机格式。

Neo4j 使用本机 GPE(图形处理引擎)引擎来使用它的本机图存储格式。图形数据库数据模型的主要构建块:

  • 节点
  • 关系
  • 属性
    在这里插入图片描述
Neo4j 图形理论基础
  • 图形是一组节点和连接这些节点的关系;
  • 图形数据存储在节点和关系在属性的形式;
    • 表示节点;
      在这里插入图片描述

    • 属性是键值对表示数据;
      在这里插入图片描述

    • 箭头表示节点间的关系;
      在这里插入图片描述

    • 复杂的关系图(单向、双向关系);

      • 从 XYZ 到 PQR 的关系是单向关系;
      • 从 ABC 到 XYZ 的关系是双向关系;
        在这里插入图片描述
Neo4j 构建模块

Neo4j 图数据库主要有一下构建块

  • 节点:是图表的基本单位。它包含具有键值对属性;这里 Node Name = “Employee”,包含一组属性作为键值对。
    在这里插入图片描述
  • 属性:属性是用于描述图节点和关系的键值对,Key = 值
    • Key 是一个字符串
    • 值可以通过使用任何 Neo4j 数据类型来表示
  • 关系:图形数据库的另一个主要构建快,连接两个节点;
    • Emp起始节点、Dept结束节点。
    • Works-For是Emp、Dept节点之间的关系,包含属性作为键值对 ID=123;
      在这里插入图片描述
  • 标签:Lable 将一个公共名称与一组节点或关系相关联。节点或关系可以包含一个或多个标签。可以为现有节点或关系和创建新、删除标签。
    • Emp、Dept 都是节点标签;
    • Work_For 都是关系标签;
  • 数据浏览器:Neo4j 自带的数据浏览器,http://xxx.xxx.xxx.xxx:7474/browser
    • 用于执行 CQL 命令并查询输入输出;
    • $ 提示符出执行所有 CQL 命令;
      在这里插入图片描述
Neo4j是一种高性能的图数据库,它以图的形式存储和处理数据。以下是Neo4j图数据库的基本概念和组件: 1. 图(Graph):Neo4j使用图来表示数据模型,图由节点(Nodes)和关系(Relationships)组成。节点表示实体,关系表示节点之间的连接。 2. 节点(Node):节点是图中的基本单元,用于表示实体。每个节点可以有多个属性(Properties),属性用于描述节点的特征。 3. 关系(Relationship):关系用于连接节点,表示节点之间的关联关系。关系可以有方向和类型,并且可以具有属性。 4. 属性(Properties):属性是节点和关系的特征描述,以键值对的形式存储。属性可以用于存储节点和关系的各种信息。 5. 标签(Label):标签用于对节点进行分类和组织。一个节点可以有多个标签,标签可以用于快速检索和过滤节点。 6. 查询语言(Cypher):Cypher是Neo4j的查询语言,它类似于SQL,但专门用于图数据库。通过Cypher语言,可以对图数据库进行查询、插入、更新和删除操作。 7. 索引(Index):索引用于加速节点和关系的查找。Neo4j支持多种类型的索引,包括唯一索引、全文索引等。 8. 事务(Transaction):事务用于保证数据的一致性和完整性。在Neo4j中,可以通过事务来执行一系列的数据库操作,并确保这些操作要么全部成功,要么全部失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值