图形数据库是 NoSQL 数据库中的一种应用图形方式存储实体之间关系信息的数据库,最常见例子就是社会网络中人与人之间的关系。
用关系型数据库存储“关系信息”数据的效果并不理想,其查询步骤复杂、响应缓慢,而图形数据库的特有设计却非常适合“关系信息”数据的管理。
关系型数据库在表示多对多关系时,一般需要建立一个关联表来记录两个实体之间的关系,若这两个实体之间拥有多种关系,那就需要额外增加多个关联表。而图形数据库在同样的情况下,只需要标明两者之间存在着不同的关系。如果要在两个节点集间建立双向关系,只需要为每个方向定义一个关系即可。
也就是说,相对于关系数据库中的各种关联表,图形数据库中的关系可以通过关系能够包含属性这一功能来提供更为丰富的关系展现方式。
因此,相较于关系型数据库,图形数据库的用户在对事物进行抽象时将拥有一个额外的标识,那就是丰富的关系。
图形数据库更有利于对人际关系、事件关系及其他关系的数据的管理和应用。如微信的社交网络,主要用于保持亲人和朋友之间的联系,图形数据库能很好地显示出用户在朋友圈所具有的影响力,以及朋友之间是否存在着共同的爱好和兴趣。
常见的图形数据库有 Neo4j、FlockDB、AllegroGrap、GraphDB、InfiniteGrap 等,另外,还有其他一些图形数据库,如 OrientDB、InfoGrid 和 HypergraphDB 等。接下来的两节将重点讲解 Neo4j 数据库: