What would you use INSTEAD of SQL?
What would you use INSTEAD of SQL?
Also every time I looked into SQL DBs I felt uncomfortable having to patch together SQL queries as strings and compile them at runtime. Why can't I define a DB schema in my compiled programming language and have it produce a typesafe query that can execute immediately? I know there's wrappers that help you define queries in a typesafe manner, but afaik these still generate query strings in the background.
How would you CRUD data DDL, DQL, DML, DCL, TCL against tables (not facts or variables) without SQL? Magic?
And why are you cobbling queries together manually and not using an ORM or library? SMH.
The language is ok minus, it's usable and isn't a problem center. String parsing isn't expensive enough for anyone to replace, and there are many benefits to the 100% language decoupling it ensures.
What we mean is "RDBMSs are amazing!", and they are. Humanity has spent a lot of resources on their design and evolution, making them into systems that efficiently solve your hard problems years before you first find out you have them.
ACID, locking, referential integrity, SQL (language flavors and RE DBMSes) aren't appreciated, probably due to a lack of CS education.
Dunno Mongo, but perhaps even that is better than having it shredded.
But even for simple use cases durability might be a requirement. And that is not so simple to get right.
Also, again AIUI, you can build an RDBMS on top of a key-value store: "Just" build a whole lot of key-value pairs where the "value" is a reference to another key more often than not. (Perhaps not just for actual references to other related tables -- or what would be another table in a real RDBMS -- but for each separate key-value store that would just be another column in a real RDBMS. Then I suppose your primary ("key column") key-value pair would have a lot of rows for each key; one for each "column"?)
I suspect most real-world usage of key-value stores in one fashion or another approaches the above... And then the vaunted "simplicity" has gone out the window (and made SPLAT! on the ground far below).
But by then you're so [invested in | married to | sunk cost-fallacied with] your key-value store that changing to a real RDBMS is nigh impossible.
So better start with a real RDBMS from the beginning.