Neo4j之图数据库

第二章 Neo4j之图数据库



前言

Neo4j图形数据库存储节点和关系,而不是表格或文件。数据的存储就像你在白板上勾画想法一样。你的数据在存储时不会被限制在一个预先定义好的模型中,从而允许以一种非常灵活的方式来思考和使用它。


1 属性图模型

在这里插入图片描述

在Neo4j中,信息被组织成节点、关系和属性。

1.1 节点是图中的实体。

  • 节点可以被贴上标签,代表它们在你的领域中的不同角色(比如说,人)。

  • 节点可以持有任何数量的键值对,或属性(例如,名字)。

  • 节点标签也可以将元数据(如索引或约束信息)附加到某些节点。

1.2 关系提供了两个节点实体之间有方向的、命名的连接(例如,Person LOVES Person)。

  • 关系总是有一个方向、一个类型、一个开始节点和一个结束节点,而且它们可以有属性,就像节点一样。

  • 节点可以有任何数量或类型的关系而不影响性能。

  • 虽然关系总是有方向的,但它们可以在任何方向上有效地导航。

2. 什么是Neo4j?

彩色瓦片图ARR

Neo4j是一个原生的图形数据库,这意味着它实现了一个真正的图形模型,一直到存储层面。数据是按照你的白板来存储的,而不是作为另一种技术之上的 “图的抽象”。

优势:

  • Cypher,一种类似于SQL的声明式查询语言,但针对图进行了优化。现在通过openCypher项目,SAP HANA Graph和Redis graph等其他数据库也在使用。

  • 由于对节点和关系的有效表示,在大图的深度和广度上都有恒定的时间遍历。能够在中等硬件上扩展到数十亿个节点。

  • 灵活的属性图模式,可以随着时间的推移进行调整,使得在业务需求发生变化时,可以将新的关系具体化,并在以后添加新的关系,以缩短和加快领域数据的速度。

  • 流行编程语言的驱动程序,包括Java、JavaScript、.NET、Python等。

3. 为什么是图形数据库?

我们生活在一个互联的世界里,理解大多数领域需要处理丰富的连接集,以了解真正发生的事情。通常,我们发现项目之间的联系与项目本身一样重要。

今天人们还怎么做呢?虽然现有的关系型数据库可以存储这些关系,但它们通过昂贵的JOIN操作或交叉查找来浏览这些关系,而且常常被束缚在一个僵硬的模式中。事实证明,"关系型 "数据库处理关系的能力很差。在图数据库中,不存在联接或查找。关系是以更灵活的格式与数据元素(节点)一起自然存储的。该系统的一切都为快速浏览数据进行了优化;每个核心每秒有数百万个连接。

满足以下需求 :

  • 浏览深层次的层次结构。

  • 寻找远处项目之间的隐藏联系。

  • 发现项目之间的相互关系。

无论是社交网络、支付网络,还是道路网络,你都会发现所有的东西都是一个相互连接的关系图。而当你想问关于现实世界的问题时,很多问题都是关于关系的,而不是关于单个的数据元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值