carlos.mennens@xxxxxxxxx (Carlos Mennens) writes: > Just wondering how you guys feel about NoSQL and I just wanted to > share the following article... > > http://www.linuxjournal.com/article/10770 > > Looking to read your feedback and / or opinions. There's a lot there to agree with, and a lot to "not disagree" with. A couple of places I'd dispute a bit... "So, what is the opposite of ACID? BASE (Basically Available, Soft-state, Eventual consistency), of course." No, that's not the "opposite," by any means. BASE represents a particular model for relaxation of the ACID model. Indeed, it's more or less an academic codifying of the consequences of systems like MQ-Series, which use message queues to allow several ACID databases to talk to each other, relaxing the "total consistency" of cross-DB transactions. "On the NoSQL side, the only thing in common is that there is nothing in common. Each NoSQL database has its own set of APIs, libraries and preferred languages for interacting with the data they contain. With an RDBMS, it is trivial to get data out in whatever format you need using whatever programming language you like best. Your choice of a NoSQL database might limit you to one or a handful of programming languages and access methods." This is true, but is further, essentially, a step backwards into the way databases were handled before SQL. Back in the Old Days, your database probably used IMS or CODASYL or some B-Tree library (hmm... anything similar here to SleepycatDB versus MongoDB versus Cassandra versus Tokyo Cabinet? :-)). And the only way to extract that data was by writing a program to traverse the data structure. At best, you could choose between COBOL and PL/1, and you'd have to write a separate program for each custom retrieval. The move from that to SQL was considered a big step *AHEAD*, because SQL, being a declarative representation, was inherently a whole lot more language/OS/framework-independent. Whoops, "MongoDB is web scale"[1] breaks all that. "No schema" means there's no declarative representation, so the notion of the same data being reusable without having to duplicate the traversal logic goes away. What I consider *particularly* bad is that this fails to recognize that "NoSQL" represents, in considerable part, a throwback to the database strategies of the 1960s that were consciously rejected in the adoption of SQL. [1] http://andrewjstevens.com/2010/09/mongodb-is-web-scale/ -- (reverse (concatenate 'string "moc.liamg" "@" "enworbbc")) "Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp." -- Philip Greenspun -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general