Key-value store (KVS) databases are similar in architecture to DKVS, as the name would imply, where keys are mapped to values. Instead of being distributed across servers, data is held on disk or in RAM. Redis, an open source database that's currently being funded by VMware, is in the KVS family, as are the Berkeley DB and MemcacheDB databases.
Imagine, if you can, a single, giant database table, with embedded tables of data found within. That gives you a fair mental picture of the architecture found within a column-oriented store. Google's BigTable is a well-known example of this class of NoSQL database. Hadoop, Cloudera, and Cassandra are also in this class of data storage system.
Some non-relational databases move away from the table/row/column methodology and store and sort entire documents' worth of data. There are the (predictably named) document-oriented store databases. MongoDB and CouchDB are part of this class, using schemaless JSON-style objects-as-documents to store information as opposed to the more commonly used XML documents.
Finally, there is the graph-oriented store class of NoSQL database. Data is manipulated in an object-oriented architecture, using graphs to map keys, values, and their relationships to each other, instead of just tables. Neo4j is an open source database in this class, as are HyperGraphDB and Bigdata.
It may seem as if all of these databases are, in and of themselves, able to stand alone as full-fledged databases. In terms of storing data, they most certainly are capable tools. But there's a big difference between storing data and finding and analyzing data.
Relational database systems have this functionality included as part of their overall capabilities, but non-relational systems must be combined with additional tools in order to process data, and turn it into information you can use.
Currently, two methodologies are dominating the NoSQL landscape: MapReduce and enterprise search.
MapReduce is currently the shiny new thing when it comes to big data, and a lot of big data technology relies on this programming interface.
The essential idea of MapReduce is using two functions to grab data from a source, using the Map() function and then process that data across multi-core systems, with the Reduce() function. Specifically, Map() will apply a function to all the members of a dataset, and will post a result set, which Reduce() will then collate and resolve. Map() and Reduce() can be run in parallel and across multiple systems, which means there is a lot of power lent to the processing of data.