I have heard a great deal about couchdb recently, and am unclear about what it really offers.

It's difficult to describe all of the variations in strict advantage/disadvantage form.

I recommend having fun with CouchDB just a little yourself. The very first factor you will find would be that the learning curve throughout initial usage is completely inverted from RDBMS.

With RDBMS spent lots of in advance time modeling your real life data to have it to the Database. Once you have worked using the modeling that you can do a myriad of queries.

With CouchDB you simply get all of your data in JSON and saved within the DB in, literally, minutes. You don't have to inflict normalization or anything like this, and also the transport is HTTP so you've lots of client options.

Then you will watch a large learning curve when writing map functions and learning the way the key collation works and also the queries from the sights you are writing. Once you understand them, you'll begin to observe how sights permit you to normalize the indexes while departing the information not-stabilized and "natural".

CouchDB is really a document-oriented database.

Wikipedia:

Instead of Relational Databases, document-based databases don't store data in tables with uniform sized fields for every record. Rather, each record is saved like a document which has certain qualities. A variety of fields associated with a length can be included to a document. Fields may also contain multiple bits of data.

Advantages:

  • You do not waste space by departing empty fields in documents (because they are not always needed)
  • By supplying an easy frontend for editing you'll be able to rapidly setup a credit card applicatoin for maintaining data.
  • Fast and agile schema updates/changes
  • Map Reduce queries inside a turing complete language of your liking. (forget about sql)
  • Flexible Schema designs
  • Freeform Object Storage
  • Really quite simple replication
  • Really Quite simple Load-Balancing (soon)

Have a look here. I believe selection solutions you is:

Just like CouchDB isn't necessarily the right tool to do the job, RDBMS's are also not necessarily the best answer.

CouchDB is really a disk hog since it does not update documents -- it produces a brand new revision every time you update therefore the not-wasting-space-part because you do not have empty fields is trumped through the revisions.