This is a quick research article on what are NoSQL databases and largely when to (and less when not to) use them. These are becoming the staple databases cloud based multi-tenanted systems. This will identify what these databases are and who is using them and what are their core concepts.

Search for: Where are they being used: No-SQL databases


A flexible/dynamic data model
  in other words no schema
Scalability
  by replicating and fault tolerance
Cloud

auto sharding
distributed queries
intrgrated caching

couchbase
mongodb
cassandra

Here is a reasonable article on the subject of nosql

Salesforce, Concur, and Cisco are three examples but there are dozens more at various stages of incorporating NoSQL into their ECM, ERP, HRMS, SCM, CRM, EPM, etc. offerings for enterprise customers.

The first companies to leverage NoSQL were internet companies that included social gaming, advertising networks, online retail, online business services, social networking, video services, online media, etc. Enterprises that are moving quickly to adopt NoSQL include online business services, advertising, media, communications, retail, and financial services, just to name a few.

...performance-sapping operations like complex queries, joins, and record locks that are typical in relational databases.


transactions
joins
...even some level of ease of use
SQL
stored procedures
backup/restore
reporting
cubes

Here is Oracles take on No-SQL DB

This article explores application development using Oracle NoSQL Database. As application developers of our time cut our teeth on SQL-based RDBMS, building a well-designed enterprise application using NoSQL databases represents a new challenge.


Big Table
Amazon Dynamo

Here is a very good thorough article on these databases


HBase, 
Cassandra, 
Voldemort, 
Riak, 
Redis, 
Hypertable, 
MongoDB, 
CouchDB, 
Neo4j

Read the previous article from IBM to get a pretty good picture of NoSQL space

Having played around with Parse for a couple of weeks now, (considered one of the simplest apis) the development approach is a bit different. Lack of joins will throw you off.

Object to data impedence mismatch in java or c# needs to be carefully handled.

I haven't figured out how to provide unique constraints. I was warned foreign key constraints may not be there.

However if developed this way the holy grail is that it is totally scalable.

Also to develop on the fly properties for document centric models might be really handy.

For example automating web forms becomes easier. Writing multi-tenancy apps become lot more feasible. Cloud based systems like Salesforce become easy to develop.

Things like Drupal or wordpress or other CMS systems can be developed lot more effectively!

Enterprises don't have to stay behind as they can become more flexible to changing business needs of their customers be they consumers or institutions or businesses.