`
han_zw
  • 浏览: 173865 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

告诉大家我所知道的Neo4j(一) ——基本概念

阅读更多

 

    Neo4j是什么?首先让我们看看Neo4j自己是怎么介绍自己的。下面是Neo4j官网(www.neo4j.org)首页上的一段话。

  The World's Leading Graph Database

Neo4j is an open-source, high-performance, enterprise-grade NOSQL graph database.

 

就像Neo4j自己介绍的:Neo4j是世界领先的图数据库。这里提到图数据库,图数据库和我们常见的关系型数据库有什么不同呢?其实感觉二者就没有什么相同之处,完全不同的两种数据组织方式。下面我们就介绍下graph database的一些基本概念,大家可以自己感觉一下。

基本概念

   Graph中最基本的组成是NodeRelationship。为了更加直观,我们看一下下面这张图,这是一个简单的社交网络。

社交网络示意图

1.Node(节点)

    NodeGraph中通常表现为Entity,比如图中的”Joe”,“Bill”等几个人所对应的数据单元均称为“Node”。

与关系型数据库不同,在Graph baseNode无类型的概念。所有Node对于Graph database来说是没有任何差别的。比如上图中Joe-OWNS->房产,在现实中我们知道“房产”和“人“是两个截然不同的类型,但是对Graph dababase来说这两个节点是没有类型差别的,都是Graph Database的一个Node而已。

另外一个与关系型数据库不同的是,NodeSchema的概念。比如同样对于“人”的Node,有的Node具有属性“Addr”,有的则有属性“Age”,等等。也就是说每个Node的属性可以各不相同,没有schema的约束。

2.   Relationship(关系)

    Node之间的通过Relationship来关联。在上图中的“KNOWS”和“OWNS”均为“Relationship”。

Node相同,Relationship也没有类型的概念。

但是Relationship有一个“Type”的说法,这点最容易引起误会。既然是说没有类型和schema概念,怎么这个地方又冒出来一个Type,这不是欺负人不认识英文吗?

relationship没有类型是说在graph database中不像关系型数据库中的表,有Person表,House表的分类,每种表都自己特定的schema结构。在Graph database中所有的relationship的处理上都是一样,没有任何差别。但是每个relationship又有type,而这个type更“像”是一个属性的含义。比如Joebill之间的relationshiptype是“KNOWS”,Joe与自己的那套房产的relationshiptype是“OWNS”。

Relationship的另一个重要特性就是Directionincomingoutgoing。分别对应图上的展示就是一个是进的方向,一个是出的方向。

如下图,体会其中relationshipTypedirection这两个特性。

realtionship

3.   Property(属性)

    NodeRelationship均可以具有Property。比如图中Joe对应的节点就具有两个属性“name”、“Addr”。同样的relationship也同样可以具有 property,比如KNOWS关系附加了property age=3”来表示“认识对方多少年”。

4.   Traversal(遍历)

    加入我们现在想在图中找到JoeDerrick之间的人际关系,我们既可以选择Joe-[:KNOWS]->Bill-[:KNOWS]->Derrick,也可以选择Joe-[:KNOWS]->Sara-[:KNOWS]->Bill-[:KNOWS]->Derrick,而我们这个在图中游走的这个过程就称之为”Traversal”。通常情况下都不会需要遍历整图,需要的只是一个Sub-Graph,获取这个sub-graph的过程就需要Traversal来完成。

5.   Path(路径)

    Path是由一个或者多个Noderelationship组成的,Path通常作为querytraversal的结果返回。像刚才我们得到的JoeDerrick的关系路线都是“path”,我们现在把两个path分别命名为path1path2.

PathLength的概念,length表示了路径中包含的relationship的数量。Path1length2path2length3.

 

    关于Graph database的基本概念就讲这些。

  • 大小: 34.2 KB
  • 大小: 13.1 KB
分享到:
评论

相关推荐

    Python期末大作业——采用Neo4j的基于协同过滤电影推荐系统.zip

    《Python期末大作业——采用Neo4j的基于协同过滤电影推荐系统》是一个综合性的项目,旨在教授学生如何利用Python编程语言、大数据处理技术以及Neo4j图数据库来构建一个电影推荐系统。该项目不仅包含了完整的源代码,...

    Neo4j学习-Neo4j入门-Neo4j文档

    在“Neo4j学习-Neo4j入门-Neo4j文档”这个主题中,我们将深入探讨Neo4j的基本概念、安装与配置、查询语言Cypher以及在实际应用中的优势。 首先,让我们了解一下什么是NOSQL数据库。NOSQL(Not Only SQL)是一种非...

    neo4j社区版 neo4j社区版neo4j社区版

    Neo4j是一款强大的图形数据库管理系统,专为处理复杂的网络数据而设计。社区版是Neo4j的免费版本,提供开源的、无限制的数据库服务,适用于个人开发、学习和小型项目。标题中反复提到的“neo4j社区版”,表明我们将...

    neo4j4.2实例视频

    例如,`MATCH (a)-[:KNOWS]->(b) RETURN a, b` 就是一个基本的查询,用于查找所有知道其他人的节点及其关系。 在Neo4j4.2中,你还会学到新功能和改进,比如性能优化、安全性的增强,以及可能的API和工具更新。例如...

    Neo4j官方中文文档-翻译

    1. **简介与安装**:这部分会介绍Neo4j的基本概念,包括其设计理念和核心特性。还会详述如何在不同的操作系统上下载、安装和启动Neo4j服务器。 2. **Cypher查询语言**:Cypher是Neo4j的声明式图查询语言,类似于SQL...

    neo4j-community-3.5.5-windows.zip

    此外,Neo4j 还提供了一个强大的图形化界面——Neo4j Browser,通过这个工具,用户可以直观地查看和操作图数据,进行数据建模和查询。 在使用 Neo4j 社区版时,注意它可能不包含某些企业级特性,如高可用性和商业...

    neo4j3.1.2windows.zip

    Neo4j是一款强大的图形数据库系统,专为处理复杂的网络数据模型而设计。在这个"neo4j3.1.2windows.zip"压缩包中,我们找到了Neo4j 3.1.2企业版的Windows安装程序,它适用于在Windows操作系统上搭建和运行图形数据库...

    Neo4j实战技术书

    大家所熟悉的传统关系数据库的查询使用的是结 构化查询语言, 即SQL( Structured Query Language) 。 而像Neo4j这样的图形 数据库( Neo4j属于NoSQL数据库的一种) 是最近几年发展起来的新技术。 随着大数据时代...

    Neo4j 1.8 windows交流版

    对于Windows用户来说,Neo4j 1.8提供了直观的图形界面——Neo4j Browser,用户可以通过这个工具来可视化数据、运行Cypher查询并查看结果。此外,它还支持配置和管理数据库,使得在Windows环境下部署和运维图数据库变...

    neo4j课件和代码

    1. Neo4j的基本概念:了解节点、关系、属性及其在图形数据模型中的作用。 2. Cypher查询语言:掌握如何使用Cypher创建、查询、更新和删除图数据,以及编写复杂的图形查询。 3. Java API使用:学习如何在Java应用中...

    Linux的neo4j安装包

    这个压缩包包含了在Linux上运行Neo4j所需的所有文件。 3. **解压安装包**: 在Linux终端中,使用`tar`命令解压下载的文件,例如: ``` tar -zxvf neo4j-community-3.5.35.tgz ``` 这将创建一个名为`neo4j-...

    neo4j-community-4.2.4-windows 社区版

    Neo4j是一款强大的图形数据库系统,专为处理复杂的网络数据而设计。社区版是Neo4j的免费开源版本,提供给开发者和爱好者用于个人学习、...通过掌握其基本概念和操作,开发者可以有效地利用图形数据库解决各种实际问题。

    SpringBoot整合neo4j案例源码

    通过这个案例,你可以学习到如何在SpringBoot项目中设置Neo4j,创建和操作图数据库,并了解Spring Data Neo4j的基本用法。这个源码示例是学习和实践的宝贵资源,适合初学者和有一定基础的开发者参考。

    Neo4j学习及Cypher基本操作

    ### Neo4j 学习及 Cypher 基本操作详解 #### 一、知识图谱概述 知识图谱是一种基于图的数据结构,由节点(Point)和边(Edge)构成。节点通常代表实体,拥有一个全局唯一的ID,而边则表示实体之间的关系或属性。在...

    neo4j-community-4.3.6-windows

    5. **图形浏览器**: Neo4j Community版包括了一个内置的图形界面——Neo4j Browser,它允许用户通过Web界面与数据库交互,执行Cypher查询并可视化结果,这对于开发和调试非常有帮助。 6. **扩展性**:4.3.6版本...

    neo4j mybatis的例子

    Neo4j是一个强大的图形数据库,而MyBatis则是一个流行的Java持久层框架,主要用于操作关系型数据库。将这两者结合可以实现对图形数据的高效管理。在这个例子中,我们将探讨如何在Java应用中使用MyBatis与Neo4j进行...

    neo4j-community.zip

    在深入探讨 Neo4j 的知识点之前,我们先了解一下图形数据库的基本概念。图形数据库与传统的关系型数据库不同,它以节点、边和属性来表示数据,特别适合处理复杂的关系和网络结构。在 Neo4j 中,每个节点可以代表实体...

    neo4j-community-4.3.5-windows.zip

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    采用java操作neo4j数据库源码

    Java操作Neo4j数据库是利用Java编程语言与Neo4j图数据库进行交互的过程。Neo4j是一种高性能的NoSQL图数据库,它以...以上就是使用Java操作Neo4j数据库的基本方法和核心概念,实践中可以根据具体需求进行扩展和优化。

    Neo4j开发手册.pdf

    整体上,Neo4j开发手册是一份全面的参考资料,它不仅介绍了Neo4j的基本概念和核心优势,还通过详细的手册和指南帮助开发者快速上手和深入理解Neo4j的使用和扩展。其提供的Cypher查询语言参考、数据库驱动指南、...

Global site tag (gtag.js) - Google Analytics