#

图:定点和边的集合

图领域划分为图数据库和图计算引擎两部分,其中

  • 图数据库用图的知识理论解决OLTP问题
  • 图计算引擎是大数据分析技术中的一种,用于解决OLAP问题

常见的图模型有属性图、资源描述框架(RDF)三元组、超图,其中属性图及其变种最为常见

# 图数据库

# 底层存储

  • 原生图存储
  • 序列化到关系型数据库或者对象数据库

# 处理引擎

免索引邻接:结点对其他结点的指向关系是物理上指向的

在传统的关系数据库中,表与表的管理关系通常是用外键表示。如果要加速查询,还需要为指向的表的对应字段添加索引。
这种指向是一种数据逻辑上的指向关系。
而在图数据库(特指原生图存储)中,关系作为一等公民,使用物理上的指向来表示,也就不再需要索引。

# 优势

  1. 性能:在大量join的场景中,图数据库可以更好的保证查询时间与目标数据的数据量成正比
  2. 灵活性:数据抽象不再太过依赖业务,而是专注于问题域本身
  3. 敏捷性:图数据模型方便迭代,以测试集、图断言为基本要素

# 相关产品

  • Neo4j:开源图数据库,当前图数据库中无可争议的老大
  • JanusGraph:Linux基金会下的分布式、开源、可大规模扩展的图数据库,是Titan的分支
  • AWS Neptune:AWS推出的图数据库
  • Apache Tinkerpop:一个面向实时事务处理(OLAP)以及批量、分析型(OLTP)的开源的图计算框架

参考DB Engines,还有以下多模型数据库支持图模型

# 查询语言

Cypher,Gremlin和SPARQL

  1. Cypher:是Neo4j的查询语言,一般指Neo4j的开源查询语言项目openCypher
  2. Gremlin:Apache Tinkerpop中定义的图查询语言
  3. SPARQL:专门用于RDF三元组的图查询语言,由W3C进行的标准化