(nebula graph)图数据库介绍
一、图数据库简介
图形数据库是NoSQL数据库的一种类型,它应用图形理论存储实体之间的关系信息。图形数据库是一种***非关系型数据库,***它应用图形理论存储实体之间的关系信息。
常见例子就是社会网络中人与人之间的关系。关系型数据库用于存储“关系型”数据的效果并不好,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷。
二、图数据库的数据模型(nebula graph)
1.图空间(Space)
图空间用于隔离不同团队或者项目的数据。不同图空间的数据是相互隔离的,可以指定不同的存储副本数、权限、分片等。图空间就类似于关系型数据库中的database
2.点(Vertex)
点用来保存实体对象,特点如下:点是用点标识符(VID)标识的。VID在同一图空间中。VID 是一个 int64,或者 fixed_string(N)。
点必须有至少一个Tag,也可以有多个Tag。但不能没有Tag。
标签(Tag)Tag由一组事先预定义的属性构成。就相当于是一张***“点表”***
例如:
space名称叫basketballPlayer
`Tag:"player",
VID:"player_01"
properties:
name:"George"
age:32`
`Tag:"player",
VID:"player_02"
properties:
name:"kobe"
age:36``
3.边(Edge)
边是用来连接点的,表示两个点之间的关系或行为,特点如下:
两点之间可以有多条边。边是有方向的,不存在无向边。
四元组 <起点VID、Edge type、边排序值(Rank)、终点VID> 用于标识一条边。边没有EID。
一条边有且仅有一个Edge type。
一条边有且仅有一个rank。其为int64,默认为0。
4.边类型(Edge type)
Edge type由一组事先预定义的属性构成。相当于是一张***“边表”***,如下图展示:
5.属性(Properties)
属性是指以键值对(Key-value pair)形式存储的信息。**
二、关系型数据库与图数据库对比
在需要描述大量关系时,传统的关系型数据库已经不堪重负。它所能承担的是较多实体但是实体间关系略显简单的情况。而对于这种实体间关系非常复杂,常常需要在关系之中记录数据,而且大部分对数据的操作都与关系有关的情况,原生支持了关系的图形数据库才是正确的选择。它不仅仅可以为我们带来运行性能的提升,更可以大大提高系统开发效率,减少维护成本。
举个例子:
对于关系型数据库,需要建立关联的表,当关系较多时,建立的关联表就会越多。

图形数据库:(nebula graph database)
例如:
1.一部电影
2.演员有多个,可以判断是否是主演
3.对于导演,然后判断导演是否出演,而且可以判断是否是主演
相关文章