属性图
属性图定义
在图结构课程中,我们介绍了图有点和边两个基本元素。任意点和边都可以有自己的特征,我们把这些特征称为“属性”。通过点和边,我们可以将现实中的业务对象之间的关系构建在图中,而点和边的属性为我们构建的关系增强了语义的清晰度和上下文。
对于点和边带有属性的图,我们称之为属性图。NebulaGraph 的属性图是有向图,由点,边,标签,关系类型和属性组成。
接下来我们具体介绍属性图中的属性、标签、关系类型。
属性
图中的属性由键(key)和值(value)构成。在数据模型层面,我们把键称为 "属性名"。例如,一个点的属性(颜色:蓝色)。其中颜色为属性名,蓝色为属性值。
NebulaGraph 属性名必须是数值、布尔、字符串、日期和时间的数据类型中的一种,且不能是复合数据类型。点和边都可以有属性。
点上的属性为点属性。例如,下图中绿色的点有两个属性,属性名分别为:age
和name
(凸显下图片中的属性),对应的值为40
和Kobe Bryant
。
边上的属性为边属性。例如,绿色的点(科比布莱恩特)指向蓝色的点(湖人队)的边也有两个属性,属性名分别为:end_year
(科比何时结束为湖人队效力的时间)和start_year
(科比何时为湖人队效力),对应的值为2016
和1996
。
标签
在 NebulaGraph 图数据库中,点的一组属性的集合称之为标签(Tag)。例如,绿色点的两个属性age
和name
,它们被包含在集合player
中。这里的player
即为标签 Tag 的名称。
一个 Tag 可以有多个属性,player
除了有age
外,还可以有name
,或者其他属性,例如height
。
一个点可以有 0 至多个 Tag。
关系类型
在 NebulaGraph 图数据库中,边一组属性的集合称之为边类型(Edge Type)。例如,黄色的边有两个属性end_year
和start_year
,这两个属性被包含在集合serve
中。serve
即为关系类型 Edge Type 的名称。
一条边只能有一个 Edge Type。
属性、标签、关系类型之间的关系
为了更形象得表示标签(Tag)、关系类型(Edge Type)和属性的关系,我们可以将 Tag 或 Edge Type 名称理解成表格的名称,属性名为表格中的表头,属性值为表格中的数据。
表名称(Tag):player
name | age |
---|---|
Kobe Bryant | 40 |
Tim Duncan | 42 |
表名称(Edge Type):serve
start_year | end_year |
---|---|
1996 | 2016 |
2006 | 2015 |
课堂小测试
1、NebulaGraph 的点可以带有多少个 Tag?