最具影响力的数字化技术在线社区

乔帮主 发表于 2014-12-28 18:24:25

1.2.2. 图数据库与其他类型数据库之间的比较

图数据库通过在一张图上存储节点和关系来持久化我们的数据结构。比起其他持久化数据模型如何呢?因为图是一种常规数据结构,让我们与其他的进行一下比较试试看。1.2.2.1 从图数据库转换成 RDBMS
将所有的数据用竖立的堆栈表示,并且保持他们直接的关系,你可以看到下面一张图(图 1.2.2.1. RDBMS)。一个 RDBMS 被优化用于聚合数据,而Neo4j擅长于高度关联的数据。图 1.2.2.1.1. RDBMS 模型http://docs.neo4j.org/chunked/stable/images/graphdb-compare-rdbms.svg

图 1.2.2.1.2. 用图实现RDBMS 模型http://docs.neo4j.org/chunked/stable/images/graphdb-compare-rdbms-g.svg


1.2.2.2 从图数据库转换成Key-Value 数据库
Key-Value模型适合用于简单的数据或者列表。当数据之间不断交互关联时,你更需要一张图模型。Neo4j让你能惊醒制作简单的数据结构到复杂,互相连接的数据。A Key-Value model is great for lookups of simple values or lists. When the values are themselves interconnected, you’ve got a graph. Neo4j lets you elaborate the simple data structures into more complex, interconnected data.图 1.2.2.2.1. Key-Value 存储模型http://docs.neo4j.org/chunked/stable/images/graphdb-compare-kvstore.svg

K* 代表一个键, V* 代表一个值. 请注意,某些键指向其他键以及普通值。图 1.2.2.2.2.用图实现 Key-Value 模型http://docs.neo4j.org/chunked/stable/images/graphdb-compare-kvstore-g.svg


1.2.2.3 从图数据库转换成列数据库
列式(大表)数据库是 Key-Value模型的升级,用 “”来允许行数据增加。如果存储一张图,这个表将是分层的,关系也是非常明确的。
1.2.2.4 从图数据库转换成文档型数据库
文档型数据库用文档进行层次划分,而自由的数据规划也很容易被表示成一颗树。成长为一张图的话,文档之间的关联你需要更有代表性的数据结构来存储,而在Neo4j中,这些关系是非常容易处理的。图 1.2.2.4.1 文档型数据库http://docs.neo4j.org/chunked/stable/images/graphdb-compare-docdb.svg

D=文档, S=子文档, V=值, D2/S2 = 关联到其他文档的索引.图 1.2.2.4.2 从图数据库转换成文档型数据库http://docs.neo4j.org/chunked/stable/images/graphdb-compare-docdb-g.svg




页: [1]
查看完整版本: 1.2.2. 图数据库与其他类型数据库之间的比较