Neo4j之图数据库
Neo4j,图数据库
第二章 Neo4j之图数据库
文章目录
前言
Neo4j图形数据库存储节点和关系,而不是表格或文件。数据的存储就像你在白板上勾画想法一样。你的数据在存储时不会被限制在一个预先定义好的模型中,从而允许以一种非常灵活的方式来思考和使用它。
1 属性图模型
在Neo4j中,信息被组织成节点、关系和属性。
1.1 节点是图中的实体。
-
节点可以被贴上标签,代表它们在你的领域中的不同角色(比如说,人)。
-
节点可以持有任何数量的键值对,或属性(例如,名字)。
-
节点标签也可以将元数据(如索引或约束信息)附加到某些节点。
1.2 关系提供了两个节点实体之间有方向的、命名的连接(例如,Person LOVES Person)。
-
关系总是有一个方向、一个类型、一个开始节点和一个结束节点,而且它们可以有属性,就像节点一样。
-
节点可以有任何数量或类型的关系而不影响性能。
-
虽然关系总是有方向的,但它们可以在任何方向上有效地导航。
2. 什么是Neo4j?
Neo4j是一个原生的图形数据库,这意味着它实现了一个真正的图形模型,一直到存储层面。数据是按照你的白板来存储的,而不是作为另一种技术之上的 “图的抽象”。
优势:
-
Cypher,一种类似于SQL的声明式查询语言,但针对图进行了优化。现在通过openCypher项目,SAP HANA Graph和Redis graph等其他数据库也在使用。
-
由于对节点和关系的有效表示,在大图的深度和广度上都有恒定的时间遍历。能够在中等硬件上扩展到数十亿个节点。
-
灵活的属性图模式,可以随着时间的推移进行调整,使得在业务需求发生变化时,可以将新的关系具体化,并在以后添加新的关系,以缩短和加快领域数据的速度。
-
流行编程语言的驱动程序,包括Java、JavaScript、.NET、Python等。
3. 为什么是图形数据库?
我们生活在一个互联的世界里,理解大多数领域需要处理丰富的连接集,以了解真正发生的事情。通常,我们发现项目之间的联系与项目本身一样重要。
今天人们还怎么做呢?虽然现有的关系型数据库可以存储这些关系,但它们通过昂贵的JOIN操作或交叉查找来浏览这些关系,而且常常被束缚在一个僵硬的模式中。事实证明,"关系型 "数据库处理关系的能力很差。在图数据库中,不存在联接或查找。关系是以更灵活的格式与数据元素(节点)一起自然存储的。该系统的一切都为快速浏览数据进行了优化;每个核心每秒有数百万个连接。
满足以下需求 :
-
浏览深层次的层次结构。
-
寻找远处项目之间的隐藏联系。
-
发现项目之间的相互关系。
无论是社交网络、支付网络,还是道路网络,你都会发现所有的东西都是一个相互连接的关系图。而当你想问关于现实世界的问题时,很多问题都是关于关系的,而不是关于单个的数据元素。
更多推荐
所有评论(0)