Shared publicly  - 
 
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.
12
3
Michael Hausenblas's profile photoJuha Lindfors's profile photoDavid Knowles's profile photoEdd Dumbill's profile photo
7 comments
 
We like nerdy, why would we have Warp drive trending on Google+ if we did not like nerdy stuff. 
 
Fascinating viewpoint, and if course this is the sort of thing that has kept industry and technology continuing to amaze us. Things tick over according to the 'status quo' and along comes a black swan event and it all changes. Relational is good for things that relational is good at, and when you have a brilliant implementation of it, all data looks like a target for that hammer. But as we all know, it just takes one hippie to flip ideas on their head. Engineering is always about matching to the task at hand and trading off the best approach for the problem you're dealing with. The size and structure of the web data set isn't ideal for a relational database unless you live in 1995 or so. Now, don't get me started on Moore's law:-)
 
I believe they call this opinionated software :-)
 
+Michael Hausenblas Thank you for the link to Fowler's book, will need to check it out. I think he's right in saying that there are very few good starting points to beginning to understand whether NoSQL is worth serious consideration for your project. It's been such a pain to find factual material to this topic that now my expectations for the book are already almost impossibly high.

And that is an area where the NoSQL proponents have not done their homework well. Instead of "armchair psychology" and vague hand-waving about scale and lack of schemas, getting down to real cases with technical details over the benefits and trade-offs is sorely missing. The relational camp has certainly made their point in force. The other side hasn't (yet?). I don't believe in silver bullets and that means I also need to understand the areas where NoSQL utterly and totally fails.
 
Agreed, +Juha Lindfors but isn't the point also that it is not a vs., a the one camp against the other but rather this insight that one size, or FWIW, one technology doesn't fit it all?
Add a comment...