图基本概念

最近更新时间:2024-10-17 21:10:32

我的收藏
本文为您介绍在图数据库 KonisGraph 实例中,涉及到的图相关基础概念。

有向属性图模型

图数据库 KonisGraph 中的图为属性图模型,包含了用户定义的点、边、以及点边具有的属性的有向多重图。

图的概念

属性图:Property Graphs,是指图中的顶点或边可以有属性。
有向图:Directed Graphs,是指边具有方向。例如,A → B 和 B → A 是不同的。
多重图:Multigraph Graphs,允许两个顶点之间存在多条边。例如,在一张交易业务的属性图模型中,用户作为顶点,交易记录作为边;用户 A 向用户 B 支付多笔,每一笔交易都视为一条边,则在这张图中,A → B之间存在多条有向边。
例如,在这张音乐社区的图模型中,包含两种类型的顶点(用户 User 和歌曲 Music),以及三种类型的边(用户间的好友关系 friends,以及用户和歌曲的 release、like 关系);顶点和边还可以具有额外的属性信息,如用户可以具有歌曲类型偏好等。


图的相关概念

图数据库 KonisGraph 提供了4种核心抽象来表达属性图模型,分别是图(Graph)、顶点(Vertex)、边(Edge)和属性(Property)。

图(Graph)

图(Graph),又称图库,是对关联实体的顶级抽象,类似于关系数据库的 database 概念。在图的使用中,图(Graph)可以表示具体的业务场景,并给出相应命名。 例如,好友关系图(社交网络业务)、QQ Music(音乐流媒体业务)、WechatPay(支付网络业务)等。

顶点(Vertex)

顶点(Vertex),是一组具有相同属性的顶点,如代表用户、歌曲、新闻。每个顶点都包含用户提供的唯一 ID 标识,点的类型,以便高效查询。
一个图(Graph)通常包含了多种顶点。例如 QQ 音乐中的用户和歌曲。

边(Edge)

边(Edge),是一组相同关系的集合,如用户和用户之间的好友关系 friends 、用户和商品之间的购买关系 purchase 等。边(Edge)表示两种不同顶点之间的某种关系,或者一种相同顶点间的同质关系。
例如,QQ 音乐中用户和音乐是两种不同类型的顶点,他们之间的 like 边表示用户对音乐的喜好。而 QQ 好友网络只有用户一种顶点。
边(Edge)
起点(src vertex)
终点(dst vertex)
说明
friends
用户 user
用户 user
同质/同构网络
like
用户 user
音乐 music
异质/异构网络

属性(Properties)

属性是顶点或边所具有的属性数据。
说明:
图数据库 KonisGraph 是强 Schema,故首先应创建点和边具有相应的属性,然后创建顶点和边时,指明相应的属性。
属性包含了三要素:1)属性名;2)属性类型;3)属性值。
为了高效的查询图数据,KonisGraph 允许对边上的属性设置索引,并根据该索引属性快速完成检索和排序。
如,用户和用户的 friends 的亲密度得分 score 可以作为排序属性,顺序或倒序排列。