EDIT I've just started skimming Codd's famous 1970 paper that started it all, that Oracle was based on (A Relational Model of Data for Large Shared Data Banks [pdf]), and was amazed to find that it seems it will answer this SO question. It talks about databases in the market at that time ("hierarchical" and "network" - like NoSQL?), the need for independence from internal representation, and a clear explanation of how to apply mathematical "relations" to a database.
Historically, what feature of relational databases gave what benefit that caused businesses to adopt it, making it massively successful?
Today, there are many reasons to use a RDB: it's standard, products are mature, debugged, full-featured, there's a choice of vendors, there's support, there's a trained workforce and so on. But why did it become so popular?
I've heard "hierarchical databases" were popular before relational databases - they sound like a key-value store, where the value can be another set of key-values. If so, that is similar to the object oriented databases that were publicized a decade or two ago; and also to XML/document databases and NoSQL.
Maybe ACID transactions (atomicity etc)? But that doesn't seem specific to RDB.
Maybe because relational databases enabled you to define a data schema that was purely about the data - independent of a particular programming language, version of an application (evolution), or purpose of the application (this makes "impedance mismatch" an inevitable) But any database with a data schema has this feature.
Maybe because the relational model is mathematically sound? But this doesn't sound like it would convince managers to adopt it - and what would be the business benefit.
Maybe because the mathematical model gives you a way to rearrange the database into different normal forms to give different performance characteristics, which are mathematically guaranteed to not change the meaning of the data? This seems plausible, and my uni textbooks make a big deal of it, but it doesn't sound very compelling to me as a practical business benefit (maybe I'm missing something)?
To summarise: historically, what made the relational model win so decisively over the hierarchical model? I'm also interested in whether RDB still have some special quality that actively makes them a better practical choice for businesses (other than the benefits of being a standard mentioned above).
Many thanks if you can shed some light - I've long been curious about this.