`
han_zw
  • 浏览: 171524 次
  • 性别: 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

    包含项目完整源代码和电影数据集,代码大部分标有注释。 内附答辩PPT和项目文档以及操作说明文本。

    Neo4j实战技术书

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

    Neo4j学习及Cypher基本操作

    知识图谱之存储及查询,图数据库Neo4j及其查询语言基本操作的范例

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

    neo4j社区版 用户名 neo4j 密码neo4j

    neo4j-community-4.3.5-windows.zip

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

    Neo4j学习-Neo4j入门-Neo4j文档

    Neo4j文档 包括中英文文档 共两份 欢迎大家下载..

    基于neo4j搭建金融风控图谱.rar

    基于neo4j搭建金融风控图谱.rar基于neo4j搭建金融风控图谱.rar基于neo4j搭建金融风控图谱.rar基于neo4j搭建金融风控图谱.rar基于neo4j搭建金融风控图谱.rar基于neo4j搭建金融风控图谱.rar基于neo4j搭建金融风控图谱....

    maven项目:neo4j实例

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

    neo4j介绍.pptx

    neo4j 简介

    neo4j community 3.1.3 [windows & linux]

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

    vue+neo4j +纯前端(neovis.js / neo4j-driver) 实现 知识图谱的集成 大干货

    vue+neo4j+(neovis.js / neo4j-driver)纯前端实现知识图谱的集成 一、Neovis.js 不用获取数据直接连接数据库绘图 二、 neo4j-driver 能够直接通过前端获取数据。 三、vis.js 绘图 四、 echarts绘图 neo4j是什么? ...

    Beginning.Neo4j.1484212

    Beginning Neo4j is your introduction in the world of graph databases, and the benefits they can bring to your applications. Neo4j is the most established graph database on the market, and it's always ...

    neo4j学习资料汇总(各种优质博文和neo4j教程整理)

    neo4j api neo4j学习资料 neo4j教程 │ neo4j官方API(官方各种API的文档整理).7z │ neo4j数据迁移--初探(一).htm │ neo4j笔记.docx │ neo4j错误码状态码.html │ └─01.neo4j学习博客汇总 │ index.html └...

    Neo4j中文手册.zip

    比较详细的手册,里面还有一小部分英语。目录: 前言 I. 简介 1. Neo4j的亮点 2. 图数据库概要 3. Neo4j图数据库 II. 教程 4. 在Java应用中使用Neo4j 5. Neo4j远程客户端库 6. 遍历查询框架 7. ...

    SpringBoot整合neo4j案例源码

    SpringBoot整合neo4j案例源码

    neo4j-manual-2.3.1.pdf

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

    Neo4j开发手册

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

    neo4j-enterprise-4.3.6-unix.tar.gz

    neo4j

    Linux的neo4j安装包

    Linux的neo4j安装包

Global site tag (gtag.js) - Google Analytics