Yes, but that isn’t what “relation” in “relational database management system” mean. Relation in sense of RDBMS is what we call “table”. That is real basis of the relational algebra on which RDBMS are built.
This is common misconception that is repeated over and over again.
So the discussion goes and goes over the same misconception.
If this is discussion about query languages (because storage in graph DBs and relational DBs will be similar) then it is mostly irrelevant as you can design language that will use graph-like queries and translate them to the relational algebra as you can describe the graph DB as a set of 2 relations:
Vertices ( id, data )
Edges ( from, to, data )
You still are. As I have showed above there is a way to use relational algebra to store and query graph-like data. What graph DB is doing, is that it just “hides” that all joins from the user of the query language. It also may automatically create indices to make queries faster, but not much more. It is like saying that
If you compare the expressiveness of Java to solve the same problem it is dazzling (as C). […] To think we have been struggling all those years with memory management!
Yes, Java is more expressive than the C, but that is not the point. C is more flexible and more powerful, even if sometimes require a little bit more code to write.
There is not much, because as I said, you can pretty simply translate relational algebra to graph query language.
You probably do not. It is just that RDBMS are simpler. Do you know how all these “NoSQL” DBs happened? I will give you quick tour:
- We use SQL.
- Yay, we are successful and we are growing!
- Oh snap, we are growing out of our current DB. We should scale (horizontally/vertically).
- Oh snap, we cannot scale our current DB anymore. Write DB accustomed to our needs which is graph/KV/columnar/document/etc. DB.
- New NoSQL is born
It is not just one post, you are again and again telling that “relation is connection between two tables”, which is not what R in RDBMS is for. JOIN
s aren’t relations, joins are operation on two relations (known as tables) that generates new relation.
There is no “one to one”, “one to many”, nor “many to many” relation in RDBMS if we are speaking in terms of relational algebra, because these aren’t relations.