上面介绍的键值数据库、列存储数据库及文档数据库可被统一称为聚合存储系统(Aggregate Stores),它们的共同点是不适合处理具有耦合关系的数据,即它们不适合用于需要理解数据关联关系的复杂查询,而这正是图形数据库的用武之地。图形数据库的一个指导思想是:数据并非对等,关系型的存储或者键值对的存储,可能都不是最好的存储方式。图形数据库是NoSQL数据库类型中最复杂的一个。
图形数据库是使用灵活的图形模型,以高效的方式存储实体之间的关系。图形模型有两个主要组成部分(图7-8):
①节点:实体本身,如果是在社交网络中,那么代表的就是人。
②边:两个实体之间的关系,这种关系用线来表示,并具有自己的属性。另外,边还可以有方向,如果箭头指向谁,谁就是老板。
图7-8 图形数据库数据存储示例(www.xing528.com)
图形数据库在查找数据时并不会特别依赖索引(严格地说,只是在定位初始节点时会用到索引)。因为对于图来说,节点间的关系可以用有向边表达出来。基于图的查询会利用这种局部临接关系遍历图,而非根据全局索引对图中节点做遍历。因此,对于有关联关系的数据来说,利用图进行查询的性能会很高。
图形数据库非常适合表示网络实体连接等问题,评估图形数据库有效性的一种方法是确定实例和实例间是否存在关系。例如,一个电子商务应用程序中的两个订单可能没有相互连接。它们来自同一个客户,但这是一个共享的属性,而不是一个连接。这样的实体很容易使用键值型、文档型或者关系型数据库来进行建模。而如城市间的高速公路连接、蛋白质和蛋白质相互作用、员工与员工间的工作关系等,这些情况都存在着一些类型的连接或者实体包含的两个实例之间的关系等,适用于图形数据库。此外,图形数据库还适用于网络和IT基础设施管理、认证与访问权限管理、商业流程管理、产品和服务推荐、社交网络等。
优点:灵活性高,支持复杂的图形算法,可用于构建复杂的关系图谱。
缺点:复杂性高,只能支持一定的数据规模。
相关产品:Neo4j、HyperGraphDB。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。