跳到主要内容

属性图

属性图定义

在图结构课程中,我们介绍了图有点和边两个基本元素。任意点和边都可以有自己的特征,我们把这些特征称为“属性”。通过点和边,我们可以将现实中的业务对象之间的关系构建在图中,而点和边的属性为我们构建的关系增强了语义的清晰度和上下文。

对于点和边带有属性的图,我们称之为属性图。NebulaGraph 的属性图是有向图,由点,边,标签,关系类型和属性组成。

接下来我们具体介绍属性图中的属性、标签、关系类型。

属性

图中的属性由键(key)和值(value)构成。在数据模型层面,我们把键称为 "属性名"。例如,一个点的属性(颜色:蓝色)。其中颜色为属性名,蓝色为属性值。

NebulaGraph 属性名必须是数值、布尔、字符串、日期和时间的数据类型中的一种,且不能是复合数据类型。点和边都可以有属性。

点上的属性为点属性。例如,下图中绿色的点有两个属性,属性名分别为:agename(凸显下图片中的属性),对应的值为40Kobe Bryant

property_graph_1.png

边上的属性为边属性。例如,绿色的点(科比布莱恩特)指向蓝色的点(湖人队)的边也有两个属性,属性名分别为:end_year(科比何时结束为湖人队效力的时间)和start_year(科比何时为湖人队效力),对应的值为20161996

property_graph_2.png

标签

在 NebulaGraph 图数据库中,点的一组属性的集合称之为标签(Tag)。例如,绿色点的两个属性agename,它们被包含在集合player中。这里的player即为标签 Tag 的名称。

一个 Tag 可以有多个属性,player除了有age外,还可以有name,或者其他属性,例如height

一个点可以有 0 至多个 Tag。

property_graph_1.png

关系类型

在 NebulaGraph 图数据库中,边一组属性的集合称之为边类型(Edge Type)。例如,黄色的边有两个属性end_yearstart_year,这两个属性被包含在集合serve中。serve即为关系类型 Edge Type 的名称。

一条边只能有一个 Edge Type。

property_graph_2.png

属性、标签、关系类型之间的关系

为了更形象得表示标签(Tag)、关系类型(Edge Type)和属性的关系,我们可以将 Tag 或 Edge Type 名称理解成表格的名称,属性名为表格中的表头,属性值为表格中的数据。

表名称(Tag):player

nameage
Kobe Bryant40
Tim Duncan42

表名称(Edge Type):serve

start_yearend_year
19962016
20062015

课堂小测试

1、NebulaGraph 的点可以带有多少个 Tag?


当前分数: 0 / 3