Yuval Kogman wrote:
There's another implied argument, that a DB should be relational for the
sake of being relational, instead of due to some other reason.
If you're doing aggregation or relational queries then yes, a relational
database makes sense (unless OLAP makes more sense, but whatever ;-)
However, in an OLTP context, a relational schema might not offer clear
benefits over something else, and in general people have a habit of using
them anyway, and working really really hard to use them too, without having
an actual reason except that they're used to it.
Just because you *can* represent a graph as 3-tuples (RDF style) or a table
of vertices and a table of edges, doesn't mean that you should. There may be
easier ways to traverse and work on a graph, depending on what you actually
need to do.
I recognize that the relational model isn't always the best tool for the job of
managing data, but I do believe it is the best tool to reach for by default,
when you don't have a rationale to use something else.
As for the examples you cited, well you have rationalized using some other tool
for those jobs, so that doesn't conflict with what I said in the previous sentence.
-- Darren Duncan