专栏首页AustinDatabasesNEO4J 图数据库哪里和哪里 从哪里开始

NEO4J 图数据库哪里和哪里 从哪里开始

上期已经安装了图数据库,本期就该讨论到底这个图数据库里面的一些基本的概念和如何操作。最近听到一句话,年轻不年轻,不是看年龄,而是看你对新鲜事物的热情,即使你20岁,谈起新事物也是一脸的不屑,只能说明身体和灵魂分了家。闲话不谈 回归正题。

节点和节点之间可以存在多种关系,单向,双向

上图是一个人际关系图,其中的每个人的关系是凌乱的,一个人对另外的几个人之间的角色也是不同的,这里NEO4J 通过 lable 来定位一个节点(方块位置)在整体中的扮演的角色,例如这张图中“某公司的客户”,就是定义这群人在这个图中的角色,都是某公司的客户。用这样的概念可以将这些人,进行一个一致性的分类。

理解NEO4J 中的关键的几个属性:

1 节点:下图中每个方块可以看做一个节点

2 属性:每个节点有多个属性,以 KEY VALUE 的形式来进行描述

3 关系: 节点和节点之间的关系,也是通过key value的方式来存储,同时节点和节点的关系不唯一,可以双向

4 标签:标签就是这组节点的共性,例如都是某公司的职员,或者摇身一变都是一个城市的市民 ,标签是标记每个节点之间的相同点

个人浅薄的理解

1 节点,可以理解为传统数据的行的概念

2 关系:就是表和表之间 join 的概念 (这也是比传统数据库高明的地方,其实还是空间换了时间),关系本身也是带有方向和属性的,这也是传统数据库本身做不到的地方

3 属性:理解为一个MONGODB 里面的document,一个节点会有多种属性

4 标签:理解为mongodb里面的collection 或者 传统数据库中的表,但一个节点可以属于多个表,这个又超越了传统数据库的理解的理念。

图数据库是什么个人总结一下,一个通过key value来存储数据,并且在在查询前就建立了JOIN关系的,数据字段属于多个表的 “weirdo” 出现了。

实际上在安装完neo4j 本身他就拥有自己的exmaple 的指导

在输入 :play movie graph 后,你可以看到上图从如何创建,一个实例的图,找寻数据,查询数据等等这些操作

点击箭头,可以将要执行的sample movie 库,在执行框中执行,执行后结果如下。

下面贴部分代码,并辅以解释,加速学习进度

1 建立节点和属性 CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'}) CREATE (Keanu:Person {name:'Keanu Reeves', born:1964}) CREATE (Carrie:Person {name:'Carrie-Anne Moss', born:1967}) 上面两句话创建了三个节点,

1 TheMatrix

2 Keanu

3 Carrie

这三个节点具有两个lable 也就是这三个节点目前属于两个表

1 Movie

2 Person

而这三个节点, {} 中的信息是代表这个节点的属性,也就是这个节点的内部信息,相当于字段以key value 形式表达,或直接理解为 mongodb的部分知识

所以建立节点需要几个信息,1 节点本身,2 节点属于哪个lable 3 节点本身的属性信息, 下面就开始创建相关的关系,也就是节点和节点之间爱你的关系

CREATE (Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix), (Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix), (Laurence)-[:ACTED_IN {roles:['Morpheus']}]->(TheMatrix), (Hugo)-[:ACTED_IN {roles:['Agent Smith']}]->(TheMatrix), (LillyW)-[:DIRECTED]->(TheMatrix), (LanaW)-[:DIRECTED]->(TheMatrix), (JoelS)-[:PRODUCED]->(TheMatrix)

首先上面这句话的意思是(翻译成人类能看懂的文字)

1 keanu 作为一个演员在TheMatrix电影里面扮演了 Neo这个角色,同时

Carrie在TheMatrix 这个电影里面扮演了Trinity 这个角色,Laurence 在TheMatrix 电影里面扮演Morpheus角色,Hugo在TheMatrix 扮演Agent Smith 角色,LillyW LanaW Joels 导演了TheMatrix 这部电影。

通过这一个语句,将六个人与这部电影的关系描述清楚。

在能读懂一些简单的创建节点和关系的语句后,我们来一边创建创建节点,一边查询节点,加快理解的速度

CREATE (TomH:Person {name:'Tom Hanks', born:1956})

创建一个节点 TomH ,然后查询这个节点通过节点的属性

如果不理解,这里通过传统的数据库来翻译一下

select tom from Person where name = 'Tom Hanks';

CREATE (CloudAtlas:Movie {title:'Cloud Atlas', released:2012, tagline:'Everything is connected'})

创建一个MOVIE的节点,叫CloudAtlas ,并且相关的电影的title, released, tagline 等字段的内容

查询 tilte 等于 Cloud Atlas 返回节点本身

select CloudAtlas from Movie WHERE title = 'Cloud Atlas'

下面这张图的意思是 查找tom hanks 到底演过几部电影

当然写到这里我也是纳闷了两天 tom 和 tomHanksMovies 我根本就没有在任何地方输入过这些信息到NEO4J中,到底他们是怎么展示的这些信息,在经过琢磨后,照猫画虎的写出了下面查询Keanu 到底演过什么电影的查询语句。同样 K,Kmovies 我都没有输入过,到底是怎么回事???

See you next time

本文分享自微信公众号 - AustinDatabases(AustinDatabases),作者:carol11

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PostgreSQL 来自欧罗巴Patroni 为什么选择Patroni 系列 1

    PostgreSQL 的 Patroni 是一个系列, 目前已经写到了 4 , 实际我也不知道应该写到多少结束.

    AustinDatabases
  • 分布式系统你不懂 CAP principle ,你在和我开玩笑?

    CAP 定理,估计大部分人都听说过,但CAP 定理的在实际中的价值,其实倒是鲜有人提及。

    AustinDatabases
  • PostgreSQL 高可用 Repmgr 命令及配置文件(三)

    应该是第三个关于PostgreSQL 高可用的文字了,Repmgr 在使用中的一些通用的命令和一些配置文件的含义,今天需要明确。

    AustinDatabases
  • Jenkins增加节点的两种方式

    单节点的Jenkins在实际生产中是很少使用的,满足不了生产环境的业务,所以我们一定是使用Jenkins集群来做持续集成,Jenkins的集群搭建是非常简单的,...

    星星在线
  • 重温数据结构:理解 B 树、B+ 树特点及使用场景

    B 树就是常说的“B 减树(B- 树)”,又名平衡多路(即不止两个子树)查找树,它和平衡二叉树的不同有这么几点:

    张拭心 shixinzhang
  • Raft分布式一致性算法整理 顶 原

    CAP定理指出,在异步网络模型中,不存在一个系统可以同时满足上述3个属性。换句话说,分布式系统必须舍弃其中的一个属性。对于需要在分布式条件下运行的系统来说,如何...

    算法之名
  • 奎特尔星球UI利器—uikiller

    注意:本文中包含程序代码,建议在手机上使用横屏阅读以获得更好的体验,在电脑上阅读可获得最佳体验

    张晓衡
  • Dubbo 源码解析 —— Zookeeper 创建节点

    前言 在之前dubbo源码解析-本地暴露中的前言部分提到了两道高频的面试题,其中一道 dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,那发布者...

    芋道源码
  • 数据结构之堆

    堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:

    呼延十
  • 什么是一致性Hash算法?

    可以将传入的 Key 按照 index=hash(key)%N 这样来计算出需要存放的节点。其中 hash 函数是一个将字符串转换为正整数的哈希映射方法,N 就...

    Java3y

扫码关注云+社区

领取腾讯云代金券