关于嬴图的基础图数据,我们需要理解几个概念:
- 顶点(vertex):也称作点、节点(node)。如顶点A、B;
- 边(edge):也称作关系(relationship)。一条边连接两个顶点,边有方向,如A←B或A→B;计算时如果忽略边的方向则相当于图论中无向图的概念;
- 路径(path):一组相连的顶点与边的组合。
- 子网、子图(Subgraph):点、边、路径构成的网络,例如联通子图、弱联通、强连通、联通分量、社区划分、标签传播、中心度等概念和图算法都是从子图演化出来的。
- 模式(schema):尽管图数据库是schema-free的,但是它指的是可以不预先定义好schema或者说可以随时根据需要定义、调整schema。一个schema代表着真实世界中的一类实体(点),如:自然人、银行卡、账户等;或者一类行为关系(边),如:关注、转账、持有等。通过Schema可以高效、智能地对数据进行筛选和利用。
- 图集(Graphset)、多边图(Multi-Graph):图集是点、边、schema及权限设置等的集合,嬴图数据库支持多图集设置,可以等同于传统数据库中的多库的概念。而多图是图论中的一个概念,凡是一对顶点间可以允许多条边的存在,就是多边图,反之则是单边图(Simple Graph)。单边图很多时候无法高效的对真实世界数据进行建模,例如银行业中的转账交易,两个账户间经常存在多比交易(边),但是单边图就无法把交易作为边来高效处理。
从关系型数据到图数据
嬴图图集中的每个点、每条边可以隶属于一个模式(schema),每个模式的点或边可以有多个属性。有鉴于此,某个模式(schema)的点或边的集合可以理解为类似于传统数据库中的一张表,而顶点间的基于边的关联操作则可看作是传统关系型数据库中的表连接(table-join)操作,区别在于图上的关联计算效率指数级高于其他类型数据库。