本文章内容转载自 Neo4j - 随笔分类 - 悦光阴 - 博客园 。


属性图:

在深入学习图形数据库之前,首先理解 属性图 的基本概念。

属性图是由 顶点(Vertex),边(Edge),标签(Lable),关系类型 还有 属性(Property)组成的有向图。顶点也称为 节点(Node),边也称为 关系(Relationship)。在图形中,节点和关系是最重要的实体。

所有的节点是独立存在的,为节点设置标签,那么 拥有相同标签的节点属于同一个集合 。节点可有零个、一个或多个标签。

关系通过关系类型来分组,类型相同的关系属于同一个集合 。关系是有向的,关系的两端是起始节点和结束节点,通过有向的箭头来标识方向,节点之间的双向关系通过两个方向相反的关系来标识。关系必须设置关系类型,并且只能设置一个关系类型 。

Neo4j 创建的图(Graph)基于属性图模型,在该模型中,每个实体都有 ID(Identity)唯一标识,每个节点由标签(Lable)分组,每个关系都有一个唯一的类型。


相关概念:

  • 实体(Entity)是指节点(Node)和关系(Relationship);

    • 每个实体都有一个唯一的 ID;

    • 每个实体都有零个,一个或多个属性,一个实体的属性键是唯一的;

    • 每个节点都有零个,一个或多个标签,属于一个或多个分组;

    • 每个关系都只有一个类型,用于连接两个节点;

  • 路径(Path)是指由起始节点和终止节点之间的实体(节点和关系)构成的有序组合;

  • 标记(Token)是非空的字符串,用于标识标签(Lable),关系类型(Relationship Type),或属性键(Property Key);

    • 标签:用于标记节点的分组,多个节点可以有相同的标签,一个节点可以有多个 Lable;

    • 关系类型:用于标记关系的类型,多个关系可以有相同的关系类型;

    • 属性键:用于唯一标识一个属性;

  • 属性(Property)是一个键值对(Key/Value Pair),每个节点或关系可以有一个或多个属性;属性值可以是原始类型,或者原始类型的数组;



图形示例:

在下面的图形中,存在 3 个节点和 2 个关系共 5 个实体;Person 和 Movie 是 Lable,ACTED_ID 和 DIRECTED 是关系类型,name,born,title,released,roles 等是节点和关系的属性。

实体包括节点和关系。节点有标签和属性;关系是有向的,链接两个节点,关系具有属性和关系类型。

1.实体

在示例图形中,包含三个节点,分别是:

包含两个关系,分别是:

  • 两个关系:连接 name 属性为 Tom Hank 的节点和 Movie 节点的关系,连接 name 属性为 Forrest Gump 的节点和 Movie 节点的关系。

  • 两个关系类型:ACTED_IN 和 DIRECTED。

其中一个关系如下图:

2.标签(Lable)

在图形结构中,标签用于对节点进行分组,相当于节点的类型,拥有相同标签的节点属于同一个分组。一个节点可以拥有零个,一个或多个标签,因此,一个节点可以属于多个分组。对分组进行查询,能够缩小查询的节点范围,提高查询的性能。

在示例图形中,有两个标签 Person 和 Movie,两个节点是 Person,一个节点是 Movie,标签有点像节点的类型,但是,每个节点可以有多个标签。

3.属性(Property)

属性是一个键值对(Key/Value Pair),用于为节点或关系提供信息。一般情况下,每个节点都包含 name 属性,用于命名节点。

在示例图形中,Person 节点有两个属性:name 和 born,Movie 节点有两个属性:title 和 released。

关系类型 ACTED_IN 有一个属性:roles,该属性值是一个数组,而关系类型为 DIRECTED 的关系则没有属性。


遍历(Traversal)

遍历一个图形,是指沿着关系及其方向,访问图形的节点。关系是有向的,连接两个节点,从起始节点沿着关系,一步一步导航(navigate)到结束节点的过程叫做遍历,遍历经过的节点和关系的有序组合称作路径(Path)。

在示例图形中,查找 Tom Hanks 参演的电影,遍历的过程是:从 Tom Hanks 节点开始,沿着 ACTED_IN 关系,寻找标签为 Movie 的目标节点。

遍历的路径如图:

Neo4j 学习笔记 1:属性图相关推荐

  1. 【日志】学习笔记之看图玩转LTM

    学习笔记之看图玩转LTM (不知道怎么回事发上来 图片显示的这么小 不过点击就可以在新窗口里看到大图了) 摘要:TRDB_LTM是友晶科技公司最新推出的 4.3 英吋数字 LCD 触碰面板套件,可以通 ...

  2. 逆向脱壳破解分析基础学习笔记七 堆栈图(重点)

    本文为本人 大神论坛 逆向破解脱壳学习笔记之一,为本人对以往所学的回顾和总结,可能会有谬误之处,欢迎大家指出. 陆续将不断有笔记放出,希望能对想要入门的萌新有所帮助,一起进步 堆栈图 首先给定一段反汇 ...

  3. Owl 学习笔记之四---属性

    Owl 学习笔记之四---属性 内容 概述

  4. CSS学习笔记 display属性

    CSS学习笔记05 display属性 HTML标记一般分为块标记和行内标记两种类型,它们也称块元素和行内元素. 块元素 每个块元素通常都会独自占据一整行或多整行,可以对其设置宽度.高度.对齐等属性, ...

  5. 年终总结 | 2019年人工智能+计算机视觉+深度学习笔记思维导图汇总

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 本文主要回顾计算机视觉.人工智能.互联网公司.自动驾驶.手推笔记.Python操作等核心内容 篇幅有限,只能总结这些 ...

  6. AD20学习笔记2---原理图绘制及编译检查

    前言: 本文学习视频是B站点击率第一的凡亿教育<Altium Designer 20 19(入门到精通全38集)四层板智能车PCB设计视频教程>,视频地址:Altium Designer ...

  7. 图数据库Neo4j学习笔记系列

    作者简介:20年IT工作经验,曾在华为.HP.移动.电网等国内外知名IT企业任职:关注领域包括证券.航空.制造.电信.电网等.在数据库开发和优化.数据仓库.系统架构.大中型项目管理.部门管理.数据挖掘 ...

  8. JavaScript中的对象学习笔记(属性操作)

    本文是笔者学习JavaScript时做的笔记,大部分内容来自<JavaScript权威指南>,记录学习中的重点,并引入一些其他博文和与其他程序员讨论的内容,供本人日常翻阅.如有疑问,请留言 ...

  9. highCharts第一天学习笔记(面积图)

    一.认识highCharts 一张图认识highCharts 二.highCharts的常用配置 知识点: 1.chart图表属性的常用配置 type:'area',//指定图表的类型,这里是面积图/ ...

最新文章

  1. 万物共享的物联网架构
  2. Node.js + Nginx-现在怎么办?
  3. centos6.8无法安装锐速的解决方法
  4. 一些或许用的到的小Demo
  5. 用户细分_基于购买历史的用户细分
  6. jenkins maven没有使用全局设置文件地址_Jenkins手把手图文教程「基于Jenkins 2.164.1」...
  7. 德勤发布《 2020 亚太四大半导体市场的崛起》报告,美国收入占比达到47%,中国大陆仅占 5%
  8. php分片数据库,4、PHP测试分片集群
  9. wiki源码_一个轻量级的企业Wiki和团队知识分享平台:MM-Wiki搭建教程
  10. 如何用PEP 8编写优雅的Python代码
  11. 五大特点_皮肤肤质五大分类及其特点
  12. MySQL数据库的主键和外键详解
  13. 嵌入式系统开发-麦子学院(1)——前言
  14. 57 spi电平转换的坑
  15. 如何成为微信小程序的开发者?
  16. 怎么恢复oracle的包,Oracle的恢复管理器及DBMS_JOB包分析
  17. 19.首页异步数据的获取
  18. JTAG、SBW、BSL 三种接口的区别
  19. 深度解析Contains底层代码
  20. 【课程设计】Java Web 学生成绩管理系统

热门文章

  1. Google秘密入口
  2. 修复WIN10下Prolific USB-to-Serial Comm Port驱动无法使用
  3. 关于打印时怎样不出现打印机选项而直接打印的解决方法
  4. SDM660 xbl阶段使能I2C 设备实现
  5. python01 初识 bmi测量
  6. Linux生成xlsx格式文件,linux下生成excel文件
  7. 高等代数 多项式环(第7章)3 一元多项式的根与不可约多项式
  8. 人生25句最美丽的名句
  9. cad坐标归零lisp_CAD坐标Z归0问题
  10. Bresenham快速画直线算法