Ola Bini is Java and Rubyexpert and consultant at ThoughtWorks Studios.
As part of the trend around NoSQL databases, it has become a lot of talk about graph databases and differences with relational databases.

There have been a number of very good products and open source projects, and it is now just as easy to use a graph database as a standard relational database.
What is the difference? Why should you care? Is not it just another variation on existing themes? Well, actually there is nothing new about graph databases, except that they take an old concept and made ​​it into something that is convenient and accessible. Basically is a graph database just what it sounds like – a database where the main object is a graph. A graph is easy to describe. It consists of nodes and named relationships between the nodes (often referred to these edges).

if you want to put up your own graph database and sample, is probably Neo4J the best place to start

So a typical graph, for example, describe the friendship relations in Facebook: Karin, Anna, John and Martha are nodes, and edges can describe that Karin is a friend of John, Anna is friends with Martha and John are also friends with Martha. What this gives us is a way to have a database where relations between the nodes is the most important part of the system.

If you’ve ever designed a database with lots of join-tables maybe it is clear that relational databases are not actually particularly interested in relationships. Many case , a graph database also store information on the nodes. So node Anna may contain information about her name when she was born and the like. But you can also add information to the edges, which allows you to store information about when Karin and John became friends on the edge between the nodes. Most graph databases allows you to save any type of information anytime, anywhere, without requiring a schema or similar.

There are many techniques that use graph databases: Facebook Graph Search has just come out and Google Knowledge Graph has been around for a while. But if you want to put up your own graph database and sample, is probably Neo4J the best place to start. Blueprint is a framework that allows you to use different databases in the same way.

Read the original article.(Swedish)