Hi Jim,
As always, I enjoyed reading your blog. It was well written and made the
point (including even a plug in the last line ;-)
While Aseem's observations are valid, I think you handled it correctly, with
the product recall example being only a relatively small win for graph
databases, and moving to to the bigger wins with deeper traversals.
One thing I realized while reading it was that, although you did not
emphasize it, the example of the Document store was actually an example of
the use of foreign keys, and is applicable to all non-graph databases,
including relational databases.
I wonder, is the use of the term 'foreign key' applicable to all these
cases? I think so, but have not found the term used much (and not in the
blog). I think of a foreign key as being the reference from one object (or
table, or kv entry, or document) to another. So your documents containing
'friend:other', where, to my mind, using foreign keys. I feel the
distinctive difference between a foreign key and a true graph is the need
for an index to provide performance in the join. Graphs have two advantages
over foreign keys, one is that the relationships can be traversed in both
directions, removing the need for the complementary foreign key Aseem
describes, and another is that the performance of a local graph traversal is
so high (implicit local index), that no index is required to traverse. I
think both these points are described in your blog entry, although in
different terms.
Regards, Craig
On Thu, Apr 21, 2011 at 7:19 PM, Jim Webber wrote:
> Hi guys,
>
> A while ago we were discussing using non-graph native backend for graph
> operations. I've finally gotten around to writing up my thoughts on the
> thread here:
>
> http://jim.webber.name/2011/04/21/e2f48ace-7dba-4709-8600-f29da3491cb4.aspx
>
> As always, I'd value your thoughts and feedback.
>
> Jim
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user