I was told that my G+ posts are too technical (actually, the word used was nerdy), and that they are always about Google-related things, so... if you don't care about databases stop reading now
I believe in this (fuzzy) hypothesis: the reason app developers waste time discussing a narrative of mutually exclusive "SQL versus NoSQL" database paradigms stems directly from the forceful and persistent personality of relational database creator Edgar Codd.
Just reading about some of Codd's work, he strikes me as the type of person who always thought he was right, and who would create axioms and rules to expose his ideas (and he did). I was checking out some of the prefaces to his books for some perspective on his personality, and find to evidence of my armchair psychologist theories.
Well, I didn't have to get very far before I found my first piece of evidence. Page zero
of Codd's book The Relational Model for Database Management
features the following dedication: To fellow pilots and aircrew in the Royal Air Force during World War II and the dons at Oxford: These people were the source of my determination to fight for what I believed was right during the ten or more years in which government, industry, and commerce were strongly opposed to the relational approach to database management.
Geez man, what arrogant defiance! Sounds like Codd was the smartest guy in the room, and after constantly talking to a bunch of lesser humans (some of whom may not have even served as WW2 fighter pilots!) for years, he felt that everyone he talked to was thwarting his amazing, (and amazingly rigid) ideas for building databases. But believing you are so very, profoundly, utterly correct invites conflict when faced with unexpected technical challenges
- and what better philosophy to shake up his rigid, tabular world view than that of the Internet and the Californian geek hippie upstarts who started to wonder how they were going to deal with scale.
Here we have Codd, World War II vet, convinced he's got the ultimate database paradigm. And he's right - at least he is for years. And on the other hand, we've got the rise of the Internet and web-scale data... and now we're faced with the realization that the relational data model can be tricky to scale over a distributed computing system. It's the classic snobs versus slobs story: British WW2 vet working at IBM building business applications versus
the Silicon Valley hippies who want to build apps with freemium business models that can scale to every user on the Internet.
Talking about "SQL versus NoSQL" is fun. It's compelling. It's a great story. It's snobs versus slobs. And it's totally inaccurate. Some systems use relational systems in conjunction with document or key-value stores. Relational features can leak into document stores, and vice versa. And in many use cases, a relational database is still, and always will be, the best tool for the job.
Codd was awesome, but when talking about databases in the era of #BigData
, he's the easy choice to play the villain. It's fun to think "ha! you thought relational was the end all and be all.. but you didn't see the Internet coming, did you?"
I can't believe I just wrote all this text about databases. How nerdy! It's embarrassing. Well... don't say I didn't warn you.