The most popular and comprehensive Open Source ECM platform
Graph databases manage maps of interconnections between objects. With the rise of Social Media, Graph databases are increasingly being used because they are a natural fit for modeling things like interconnected web links, recommendations, tags, and friend and contact relationships. Traditional databases just aren’t able to store this kind of information easily in tables and rows of data.
Core standard relational databases are the concepts of entities and relationships. In graph databases, the corresponding concepts are nodes and edges. A node holds the property and data for an object. Diagrams which show the relationships maintained in graph databases resemble the diagrams used in object-oriented programming, and because of the similarity, graph databases easily can model the relationships between the objects used when programming an application.
Graph database vendors include Neo Technology (Neo4j), Objectivity (InfiniteGraph), and Sparsity (dex*). But there are many other less well known options too. Neo has recently raised another $11 million in funding.
Speed is another big reason graph databases are gaining some traction. Emil Eifrem, CEO of Graph Database company Neo, reported on Mashable some tests that he ran which compared the speed of relational to graph databases. He created a “friends of friends” query and found that when the query of relationships went three levels deep that the graph database beat the relational one by a factor of 150, and when the query depth was increased to four the graph database bested the relational one by a factor of 1000.
Philip Howard, analyst at Bloor Research, told InfoWorld that “Graph databases are critical when the degree of separation [ie, I know x who knows y who is related to z who used to live in the same house as w etc.] between entities becomes too great to handle using conventional technology. Oracle or DB2, for example, can reasonably handle up to three degrees of separation but not the six or seven degrees you need in, say, telco fraud.”
Howard commented on the limitations of graph databases, saying that “The major limitation is that while these are technically NoSQL databases, in practice they cannot be implemented across a low-cost cluster (at least not a present) but have to run on a single machine, the reason being that performance degrades rapidly across a network. Another potential drawback is that either you have to write your own queries using Java or whatever — which means employing expensive programmers — or you use SparcQL or one of the other query languages that have been developed to support graph databases, but this means learning a new skill.”