from Hacker News

SQL vs. NoSQL

by dkthehuman on 9/3/12, 11:00 PM with 44 comments

  • by badclient on 9/4/12, 7:22 AM

    I am presently researching these so-called NoSQL databases and one thing that I keep wondering is why can't all of these database still support a limited form of SQL-like language?

    Almost any json document could be represented as a db table as far as I can see. Why can't I query using a common language instead of learning each of these NoSQL database's own way of doing simple stuff like returning documents of User object that have a gender field value as 'male'. In SQL, it would be something like "select * from users where gender='male". Why can't NoSQL databases support a query similar to that? Why do they require me to describe a similar request in their own unique syntax?

    I sometimes get the feeling that coining a term like NoSQL is a marketing gimmick which hurts people actually trying to learn the nuanced differences but I am only getting started. Why can't we extend SQL to support "NoSQL"-specific cases instead of replacing it with nothing.

    I get that a big part of SQL is joins and the philosophy of joins goes against the idea of NoSQL. The solution to that is to still accept SQL but just throw an exception when join is used with a link to educate the person on alternative implementations.

  • by elchief on 9/4/12, 12:05 AM

    I don't really get why HBase isn't bigger than it is. I mean, it's BigTable, right? And Facebook dropped Cassandra for it, IIRC.

    Not trying to start a war here, I am not an interested party, I am just curious.

  • by VLM on 9/4/12, 12:29 PM

    A NoSQL discussion isn't complete without a link to the inner platform effect

    http://en.wikipedia.org/wiki/Inner-platform_effect

    Basically if your application domain is inherently relational or inherently "SQL" no "NoSQL", then building your own RDBMS in your application absolutely dooms you, unless you're not a "real" application writer but actually a RDBMS author.

    I have having a conversation with a guy "I wish there was a library for (whatever nosql DB he was complaining about) I could link in to do transactions and indexing for me" my reply "yeah, its called postgresql". That's not trendy and buzzword compliant, he ended up annoyed with me. There's a "pragmatic programming" book "seven databases in seven days" which is a pretty good book and it describes polyglot database design a little toward the end... so you "need" a key-value store and indexed transactions and there's nothing that does both perfectly... Well, there's plenty of good free open source DBs, so install and use two DBs... its really not that hard.

  • by Lasher on 9/4/12, 1:12 AM

    Interesting that one of the original "noSQL" databases that is still going strong today, Pick and its variants, was not mentioned in the article at all.

    Universe and JBase are both well supported on Linux and there are several multi-billion dollar (revenue) companies running their core business on it - I work for one of them.

  • by stevencorona on 9/3/12, 11:59 PM

    stopped reading the articled referred to amazon s3 a database. instant credibility killer. no thanks.

    (p.s the amazon product you're looking for is dynamo)