Neo Technology Just Closed $20M in Funding
blog.graphenedb.com
Neo Technology Just Closed $20M in Funding
1–10 of 20 posts
Re: Neo Technology Just Closed $20M in Funding
#2I see them as much more than this. I love using document databases because I don't have to worry about strict schemas. However, I lose a lot when I have multiple entities that are related in some way. Say I have a list of books and a list of authors. In MongoDB the book object would just have an id of the author and would then need to do a separate query to get the authors details.
Before graph databases, this sort of data would be best represented in a relational database as they have a really efficient way to join related data together.
However, with graph databases I get the best - and even better - of both of these worlds. My book entity contains a pointer to the author(s), so to query the book and their authors is even faster than a relational database.
In addition there is no fixed schema, so I am not tied down to a strict schema, thus allowing me to iterate faster. This could of course also be seen as a disadvantage - however I see no reason why a graph database couldn't build in the facility to have strong validation on the schema for specific entity types..
What is there not to like about Neo4J?
Re: Neo Technology Just Closed $20M in Funding
#3I've only had a brief look at Neo4J, but I really like what I see. Graph databases seem to be marketed as an ideal way to represent a social network or similar where you want to represent the connections with other entities. I see them as much more than this. I love using document databases because I don't have to worry about strict schemas. However, I lose a lot when I have multiple entities that are related in some…
This is ENTIRELY MY FAULT - not Neo4j, they never market it as that - just as MongoDb never markets itself as a true replace for relational problems.
But that said there is plenty to not like about Neo4j if you don't use it right - so make sure you use it for what you need and not what you don't need
Re: Neo Technology Just Closed $20M in Funding
#4I've only had a brief look at Neo4J, but I really like what I see. Graph databases seem to be marketed as an ideal way to represent a social network or similar where you want to represent the connections with other entities. I see them as much more than this. I love using document databases because I don't have to worry about strict schemas. However, I lose a lot when I have multiple entities that are related in some…
Many folks take this as a given, but the performance difference is often not that large, and may even be in the other direction, if you build the right index (e.g., on the AuthorID in this case). The index is essentially those pointers as well. If the data fits in memory (Neo4j, in the past at least, has pretty much required that), then the B+-tree index lookup is also very very fast. You would be surprised at how fast PostgreSQL can do even seemingly complex graph-natured queries, e.g., finding, for an author, the co-author with which it has written most books.
Re: Neo Technology Just Closed $20M in Funding
#5The "graph model" was, in the 60s and 70s, called the "network model" [1]. This is the environment in which Codd introduced the relational model [2], where he wrote:
> In previous work there has been a strong tendency to treat the data in a data bank as consisting of two parts, one part consisting of entity descriptions (for example, descriptions of suppliers) and the other part consisting of relations between the various entities or types of entities (for example, the supply relation). This distinction is difficult to maintain when one may have foreign keys in any relation whatsoever. In the user’s relational model there appears to be no advantage to making such a distinction (there may be some advantage, however, when one applies relational concepts to machine representations of the user’s set of relationships).
It's quite funny that after the elegance of Codd's work, we're thinking about going back to the network model and all its problems. If we're going to consider that, we need very good reasons, but I haven't seen any.
I do see some features of Cypher as nice compared to SQL. Specifically those features that implement graph algorithms (e.g. shortest path). I do think there is space in the relational world for languages other than SQL. For example, it is disappointing that no relational databases implement Datalog as a query language. However, it is important not to conflate "SQL" and "the relational model".
[1]: https://en.wikipedia.org/wiki/Network_model [2]: http://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf
Re: Neo Technology Just Closed $20M in Funding
#6I've been using Neo4j for around 3 months, but I'm unconvinced by the "graph" model as having any significant advantage over the relational model. A graph can be trivially modelled relationally as a "vertex" table and an "edge" table. A particular problem I have with the graph model is that edges cannot be referenced by other entries in the database; thus the schema designer must prefer using vertices to model all co…
Re: Neo Technology Just Closed $20M in Funding
#7I've been using Neo4j for around 3 months, but I'm unconvinced by the "graph" model as having any significant advantage over the relational model. A graph can be trivially modelled relationally as a "vertex" table and an "edge" table. A particular problem I have with the graph model is that edges cannot be referenced by other entries in the database; thus the schema designer must prefer using vertices to model all co…
It would be interesting to see a script-type language on top of a traditional relational db.
Re: Neo Technology Just Closed $20M in Funding
#8Re: Neo Technology Just Closed $20M in Funding
#9I've been using Neo4j for around 3 months, but I'm unconvinced by the "graph" model as having any significant advantage over the relational model. A graph can be trivially modelled relationally as a "vertex" table and an "edge" table. A particular problem I have with the graph model is that edges cannot be referenced by other entries in the database; thus the schema designer must prefer using vertices to model all co…
The main reason is speed. Graph traversal is constant time as opposed to O(log n) for each traversal. The speed only becomes relevant later, and you can therefore add graph databases as a slightly delayed replica on top of a db for things you need to traverse fast.
Re: Neo Technology Just Closed $20M in Funding
#10I've been using Neo4j for around 3 months, but I'm unconvinced by the "graph" model as having any significant advantage over the relational model. A graph can be trivially modelled relationally as a "vertex" table and an "edge" table. A particular problem I have with the graph model is that edges cannot be referenced by other entries in the database; thus the schema designer must prefer using vertices to model all co…