Do You Even Know How To Design A Relational Database?

Feb 24, 2010 01:46

I'm really starting to wonder about this "NoSQL movement". Everything I've read so far seems to have a severe case of tunnel vision - the only database anyone mentions in these NoSQL articles is MySQL, and they discuss how they have all these issues scaling it... and gee, it really sucks that you can't easily make schema changes all the time when ( Read more... )

Leave a comment

Comments 7

bronzite February 24 2010, 13:13:54 UTC
Actually, I think its a lot scarier than you've set forth in your comments here. Based on what I've read about it (and don't think term hasn't come out of a well-meaning client's mouth at one point) the goal seems to be to boost horizontal scalability. As far as I can tell, the goal is to be able to add new nodes to a database cluster without worrying about things like "synchronization" and "consistent recordset returns." It seems like they have a methodology that works for situations where you don't need the information your return to be complete, or even up-to-date, as long as you return somethingThat makes sense if you're generating Facebook's News Feed, or a set of recommendations for Amazon -- you can probably just take whatever the server that receives the request thinks is the correct response to that query, and if its a few hours or days out of date, so be it. If you're dealing with, say, multidivisional corporate finance management, that's horrifically bad ( ... )

Reply

mikecap February 24 2010, 13:39:11 UTC
I guess companies with no business model who make no money have a different set of requirements. :)

Reply


bluegargantua February 24 2010, 13:58:23 UTC
Wait. So you have no schemas so you can add tables and stuff willy-nilly, but you don't have any joins so you can't link any of the tables/data together ( ... )

Reply

mikecap February 24 2010, 14:21:21 UTC
I'm actually seriously concerned that this may be the effect of the "anybody can be a programmer" phenomenon in industry. Because so many people have no formal training in computer science, you end up with all these hotshots who think they're doing amazing stuff, yet they're re-inventing the wheel, except what they're making is actually a cube instead of a cylinder/torus.

I can't tell you how many times I keep running into people who started out as script kiddies or child hobbyists, got a non-technical degree, and are now highly paid consultants who couldn't tell you what recursion or encapsulation are, let alone how to design databases to 4NF.

Reply


ecopoesis February 25 2010, 02:42:58 UTC
NoSQL isn't a replacement for SQL, it's just another tool along side it. NoSQL solves the persistent data, random access, high speed access problem. Yes, you can make SQL do key-value pairs, but even with spending money on Oracle etc you're no going to be able to pull 10s of Ks worth of records in 10s of ms. And yes, you could just use a Memcache layer on top of SQL, but now you're double writing, you have unneeded evictions cause of Memcache's crappy slab setup, and all your standard cache stampeding issues, and on top of it all, Memcache still isn't that fast.

I'd love to use pretty and perfect SQL for everything, but sometimes it's just not the right tool for the job, and when you're talking huge web-scale apps, it just can't keep up.

Reply

mikecap February 25 2010, 06:09:52 UTC
Nope, that's Kool-Aid you're drinking there, son.

Reply

mikecap February 25 2010, 06:19:43 UTC
And the reason why I know that you're drinking Kool-Aid is because I know for a fact that Goldman Sachs isn't using NoSQL, they're using good old RDBMS's. You think "huge web-scale apps" compares at all to the transaction volumes and writes that securities banks or insurance companies deal with? You think that consistency might be a tiny bit important for what they're doing? You need to put down the NoSQL crack pipe.

Reply


Leave a comment

Up