4 ms·
You had me until the NoSQL rant. I see what you're saying, but modern data stores such as Cassandra, Riak, Mongo, Redis etc. are solving different problems and,
by stevencorona 15y ago
You had me until the NoSQL rant. I see what you're saying, but modern data stores such as Cassandra, Riak, Mongo, Redis etc. are solving different problems and, IMO, it's ignorant to say that they are simply reinventing the wheel. There is life beyond RDBMS and ACID.
- etrain 15y agoI have serious problems with the relational data model, but I do think he raises a good point. This relational stuff has REALLY strong fundamentals and is battle tested. There are a lot of people out there shouting 'scalability!' without understanding the roots of their problems. Is a fully distributed persistent k/v store what's needed for many applications? Certainly. But that doesn't mean we should throw out the relational model for every application.
- rbanffy 15y agoIndeed, there is, but it feels oddly familiar, for those raised in the ancient era of ISAM, IMS and Total, to once again need to worry about consistency. NoSQL databases (and not all of them are hierarchical) solve problems Codd wouldn't dream of having, but that doesn't mean they solve every current problem. I've seen people abusing them in horrible ways.
- weavejester 15y agoThe author seems to have the attitude of "I don't understand why people do X, therefore people who do X are morons."
- agentultra 15y agoWell if you are referring to the one instance where he uses the word, "morons," you might have missed the implied context. 1. Informal . a person who is notably stupid or lacking in good judgment. And the entire passage in which he uses the term to give us some context: An even bigger letdown for me is the whole NoSQL situation. The proponents of NoSQL aren't even aware of how they are repeating history by recreating the hierarchical databases of yore. E.F. Codd was explicitly trying to rectify these mistakes when he formulated relational database theory 40 years ago, and now we've come so far along that we've wrapped around and apparently must re-learn these mistakes a second time. The morons promoting this technology have no clue, they see themselves as the new sheriffs in town, putting their scalability law above all else. His argument is strong and he provides his reason so I don't think it's for a lack of understanding. If you have issue with his argument address it! Don't use passive ad-hominem attacks. Are the creators of data stores that identify as "NoSQL" repeating mistakes made in history? Are they a different class of technology than those that were invented 30, 40 years ago?
- weavejester 15y agoSaying that someone lacks understanding of a subject is not an ad-hominem attack. You are correct that I didn't justify my point of view, but then nor did the author of the article. Let's examine his claims: "The proponents of NoSQL aren't even aware of how they are repeating history by recreating the hierarchical databases of yore." Says who? The author doesn't bother justifying this statement, he just throws it out there. It's completely baseless, and likely a straw-man argument (as I have a hard time believing that everyone at Google, Facebook, Twitter and all the other large cloud companies are completely clueless about database history). "E.F. Codd was explicitly trying to rectify these mistakes when he formulated relational database theory 40 years ago" This sounds a little more plausible, but which mistakes is he talking about? And when did Codd say this? Citation, please! "and now we've come so far along that we've wrapped around and apparently must re-learn these mistakes a second time" Which mistakes exactly? Don't make me guess! "The morons promoting this technology have no clue" Ad-hominem attack. Let's move on. "they see themselves as the new sheriffs in town, putting their scalability law above all else." Finally we learn his beef with NoSQL databases, but he fails to justify his argument any more than this. There are strong reasons for putting scalability above other concerns. The scalability of S3 matters far more to me than whether updates are atomic, for instance. Frankly, I'm confused why you think "his argument is strong". His argument consists of unjustified statements, straw men, and ad-hominem attacks. There's utterly no substance to it.
- agentultra 15y agoI agree with pretty much everything you say here. In your original comment you said, The author seems to have the attitude of "I don't understand why people do X, therefore people who do X are morons." Which doesn't add anything to the discussion of this article. It's simply an ad-hominem and nothing else. Where as the author provided reasons why he thought the people behind modern NoSQL systems are morons. So even though he used an insult he made it clear why he was using it (even if his argument was weak). Now that you've explained your position it makes a lot more sense. However I never did say whether I agree with the author or not. I'm still curious as to whether the author might have a point despite how poorly constructed his argument is. You made some really interesting points that I'm probably going to follow up on. What were these 'mistakes' that the author keeps referring to? What was the motivation for the invention of the RDBMS? How similar are NoSQL systems today to the systems which the RDBMS was supposedly invented to replace?
- dxbydt 15y agoIn graduate school, I was taught RDBMS & ACID by a Math Professor with a Math PhD, who later got a CS PhD, & personally interacted with Date & Codd. My key takeaways from that experience were: 1. There's a very stringent one-to-one mapping between RDBMS & relational logic. To put it another way, BCNF is not a matter of taste. Its a matter of adhering to the rules. If two dozen data architects are given the same many to many relation, and asked to take it through 1NF to 2NF to 3NF to BCNF and then stop, every single one of them will have the exact same answer. And this is because normalization is an extremely formal process => formal in the mathematical sense of the word. Two sets that have a given many-many relation will decompose to the exact same subsets because the mathematics of BCNF is unambiguous. This is incredibly powerful => Because there's a wrong answer! So if you hire a data architect & the guy gives you a BCNF & you crosscheck that BCNF with a more reliable architect, you are checking if the answers agree objectively. Its just straight math, not a matter of subjective taste as to which should be the primary key & which should be the foreign key & how the transtive dependence works out. 2. With objects in the mix, the relationship is already on creaky foundation. ORMs have an impedance mismatch because the relationships captured by notions of inheritance, polymorphisms, mixin traits - these don't have an exact mapping onto the set-theoretic notions captured by BCNF. Morover, there is a matter of subjective taste. You might design your UML differently from me & you might have valid reasons to do so. So while your BCNF exactly matches mine , your object model won't. 3. With kv stores, your relations are even more mathematically fuzzy. You are storing entire multi-valued objects and your rows have variable number of columns & at times you are dealing with completely denormalized structure. The math simply doesn't apply at these levels, and people tasked with populating a NOSQL structure will come up with wildly differing solutions that are completely unsound from a mathematical standpoint, but will nevertheless perform ( upto a certain threshold ) simply because machines have gotten faster & network latency issues aren't holding them back. I see more & more firms pick #3 because of trends( latest & greatest), lack of expertise to do #1 properly, or because of some false sense that scalability will bite them in the ass if they do #1 instead of #3, but primarily because #3 is EASY and #1 is hard. Its nice to not worry about normal forms & just have a multi-column row which grows & shrinks...but is it sound ? Am not sure.
- oconnor0 15y agoAre you arguing that RDBMS can handle all of the data, performance, and scalability requirements as well as a kv store while also in BCNF?
- franklovecchio 15y agoThere is definitely a learning curve associated with proper NoSQL data-modeling (and slightly different for each of the above stated DBs), but a place for both relational and non exists, as they each solve different problems! (NoSQL being really good at time-series data)