Neo4j属性图模型简单介绍
本文主要是对Neo4j属性图模型简单的介绍。
Neo4j是什么?
Neo4j是一款是由java语言实现的图数据库,图形数据库将数据以图的数据结构进行存储和管理,并且能够以高度可问的方式优雅地表示任何种类的数据,而Neo4j是基于属性图模型(Property Graph Model)的数据库。
属性图模型定义
在属性图中存在如下元素:
1、 实体(Entity)
a) 节点(Node)
b) 关系(Relationship)
2、 边/路径(Path)
3、 记号(Token)
a) 标签(Label)
b) 关系类型(Relationship Type)
c) 属性key(Property Key)
4、 属性(Property)
1.实体
1、每一个Neo4j图数据库中的实体都拥有一个用于区分实体与实体之间是否相等的唯一标识;
2、每一个Neo4j图数据中的实体都可以分配一组属性key以及对应的属值(value),同一个实体中的属性key都是唯一的,并且不能为空的以及空字符串;
1.1.节点
1、Neo4j图数据库中节点都是建立在实体的之上的一种抽象,拥有属性和属性值;
2、一个节点可以被分配一组唯一的标签;
3、一个节点可以有0个或者多个向外或向内(边/路径的指向,分为向外和向内两种)的关系;
1.1.1.节点例子1、
有一个图他只有一个节点,这个节点只有一个属性name如下图所示:

1.1.2.节点例子2
有一个图有三个节点,如下图所示:

1.2.关系
1、关系是一个建立两个节点之间关系,由源节点指向目标节点的实体;
2、一个向外的关系,是源节点由自身关联目标节点的一种关系;
3 一个向内的关系,是源端节点自身被关联的一种关系;
4、每一个关系都必须分配一个且唯一的关系类型;
5、关系也是实体,可以拥有属性和属性值;
1.2.1.关系例子1
有如下图关系:

图中的的关系有Student和Teacher两种关系类型, Teacher这种关系类型有一个roles属性,它的类型为数组类型,而Student这个关系类型中的Class属性的数据类型为String。
1.2.2.关系例子2
自关联关系

2.边/路径
1、 边/路径表示一个属性图的关系,由一系列交替的节点和关系组成;
2、 一个边/路径总是由开始于节点,终止于节点(成也萧何,败也萧何);
3、 最小的边/路径只包含单个节点,这类型的边叫做空边/空路径;
4、 边/路径有一个长度(深度),它是大于或等于0的整数,等于路径中的关系数;
2.2.1.边/路径例子1
图数据库中边/路径的长度等于0,如下图:

2.2.2.边/路径例子2
图中边/路径的长度等于1,如下图:


3.记号
记号是一个非空的Unicode字符串。
3.1.标签
标签是一个分配给节点的一个唯一的记号。

3.2.关系类型
关系类型是被分配给关系的一个唯一的记号
3.3.属性key
属性key是一个存在于实体中的唯一属性字段,类似于Json对象中的key。
3.3.属性
属性由一对属性key和属性值组成,类似于Json字符串中的key:value。
到这里就结束了对Neo4j属性图模型的基本介绍了,祝大家生活愉快!
原文地址;https://www.jianshu.com/p/f7ede1586f97
Neo4j属性图模型简单介绍的更多相关文章
- 图像切割之(五)活动轮廓模型之Snake模型简单介绍
图像切割之(五)活动轮廓模型之Snake模型简单介绍 zouxy09@qq.com http://blog.csdn.net/zouxy09 在"图像切割之(一)概述"中咱们简单了 ...
- Android Mediaplayer各种属性和方法简单介绍
主要涉及类:MediaPlayer (1) 当一个MediaPlayer对象被创建或者调用reset()方法之后,它处于空闲状态,调用release()方法后处于结束状态 1,一个MediaPlaye ...
- netty学习(一)--linux下的网络io模型简单介绍
linux的内核将全部的外部设备都看作一个文件来操作,对一个文件的读写操作会调用内核提供的系统命令 ,返回一个file descriptor(fd.文件描写叙述符).而对一个socket的读写也会有对 ...
- 网络 IO 模型简单介绍
一.同步阻塞 IO(BIO) 当用户线程调用了 read 系统调用,内核(kernel)就开始了 IO 的第一个阶段:准备数据.很多时候,数据在一开始还没有到达(比如,还没有收到一个完整的Socket ...
- UML动态模型图简单介绍
UML动态模型图描述了系统动态行为的各个方面,包括用例图.序列图.协作图.活动图和状态图.下面就每种图做一个简单介绍: 用例图 用例图描述系统外部的执行者与系统提供的用例之间的某种联系.所谓用例是指对 ...
- 简单介绍一下R中的几种统计分布及常用模型
统计学上分布有很多,在R中基本都有描述.因能力有限,我们就挑选几个常用的.比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示. 统计分布每一种分布有四个函数:d――density(密度函数) ...
- CMake 简单介绍 图
http://tech.uc.cn/?p=914 CMake特点 CMake需要用户用CMake规范的语法编写CMake脚本,该语法简单易用,入门极其顺手 原生支持 C/C++/Fortran ...
- 向量空间模型(VSM)在文档相似度计算上的简单介绍
C#实现在: http://blog.csdn.net/Felomeng/archive/2009/03/25/4023990.aspx 向量空间模型(VSM:Vector space model)是 ...
- Git flow的分支模型与及经常使用命令简单介绍
Git flow是git的一个扩展集,它基于Vincent Driessen 的分支模型,文章"A successful Git branching model"对这一分支模型进行 ...
随机推荐
- 0829NOIP模拟测试赛后总结
这次发誓不会咕咕咕! 80分rank30完美爆炸. 拿到题目苏轼三连???貌似三篇古诗文我都会背啊hhh.爆零警告 T1没啥思路,打完暴力后想了大约20分钟决定分解个因数,在b次方中每一次方选择一个约 ...
- springmvc jar包下载
(1) springmvc jar包下载 提供地址 - qq_31307253的博客 - CSDN博客https://blog.csdn.net/qq_31307253/article/details ...
- day 46 Javascript学习
Javascript学习 JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScri ...
- 【DM642学习笔记一】关于Can't Initialize Target CPU的一种解决方法 : Error 0x80000240
花了几天时间,终于可以顺利进入ccs软件开始学习了! 我使用的是瑞泰公司的ICETEK-DM642-IDK-M图像处理系统(ICETEK5100USB仿真器,仿真芯片为DM642).使用ccs2.21 ...
- 一个四五年的Java开发程序员,该准备哪些去面试?
上周面试了一周,感触颇深,总结一下. 面试了公司大概有阿里,携程,爱奇艺,唯品会,途牛,bilibili,大众点评,阿里和爱奇艺是电话面试,其他现场面试. 首先,五年左右,应该算高级开发工程师,大部分 ...
- 基于baseline和stochastic gradient descent的个性化推荐系统
文章主要介绍的是koren 08年发的论文[1], 2.1 部分内容(其余部分会陆续补充上来). koren论文中用到netflix 数据集, 过于大, 在普通的pc机上运行时间很长很长.考虑到写文 ...
- python-web-习题
1.简单描述 webbrowser.requests.BeautifulSoup 和 selenium 模块之间的不同 webbrowser模块有一个 open() 方法,它启动 web 浏览器,打开 ...
- Codeforces 486D. Valid Sets
D. Valid Sets time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- 使用DynamoShake从dynamodb迁移到mongodb
去年和今年年初,我们开源了MongoShake和RedisShake分别用于MongoDB和Redis的迁移.同步.备份等多种需求.最近,我们的shake系列又进一步壮大,我们推出了一款dynamod ...
- JS的第七种语言类型--symbol
今天浏览网页的时候发现,JS中有七种语言类型.我的内心???百度一下哪里来的第七种!! 好吧跟着来回顾一下JS的前6种undefined null boolean string numver obje ...