Suppose you have graph-like data that describes the (undirected) relationship between
destination. If we store these relationships in a traditional relational database with a single key to query on we would have something like this,
target, destination A, B A, C B, A B, C C, A C, B ...
So to get all relationships associated with A we can just filter A on the target column. This is inefficient since we are replicating a lot of information (e.g. storing both A, B and B, A, even though the relationship is the same.
Alternatively we could store it as,
target, destination A, B A, C B, C
But now to get all relationships with A we have to filter on both the target and the destination column, which is a little clumsy.
If we store it in a graph like database then we would have a single column to query on (the nodes) which will give us all the relationships for a given node (by following the edges for the node we’re filtering on).