relational is good for lookups and adjacency queries, and thats the main query semantic in CRUD
relational is good for lookups and adjacency queries, and thats the main query semantic in CRUD
Hmm, why aren't graph queries useful for CRUD? I don't get it.
C — create a new node (possibly with some edges).
R — get one or a list of nodes fitting some criteria (including being connected to other nodes).
U — update a given node and possible its edges, and also possible some adjacent nodes.
D — drop the node and its edges.
Which of these is conceptually more difficult with graph DBs?
When someone needs to store today's office visitors, they don't need to know who shared the visitor log on Facebook and how many people liked it, or how many visitors removed from Kevin Bacon they all are, it just needs a list with a bit more structure than CSV, and that kind of use dominates what people do with databases.
What does <a graph database> add that I can't get out <the relational one> I already use, and does <that thing> matter in the context I'm building in enough to justify the cost of migration/maintenance?
In a surprising number of contexts, the answer is nothing, in which case you stop, or something, and no, which is also a stop.
The Architect's point of view should take into account the relative availability of talent and cost of materials to get the job done. This is part of what makes them the Aspirant Developer's mortal enemy.
This way of formulating a question though, despite it's frustrating effectiveness at short-circuiting new-shiny for new-shiny sake, also excells for getting juniors on the road to becoming technical experts.
Releational can model a graph but can only answer queries like X is an immediate neighbour of Y. It lacks the walks (SQL recursive is kinda there but not really).
The primary purpose of a DB is to serve queries. But graph DB's queries are not so useful for most "lookup" type workloads that dominate business. So a graph DB is overkill, and when you get into the nitty gritty, cannot do many performance optimizations as a result. So a graph DB is a worse relational DB. But immediate relations are what is interesting to business.