CouchDB is a document oriented database. A document oriented database stores information as documents of related data. All of the data within a document is self contained, and does not rely on data in other documents within the database. This can be quite a shift if you’re used to working with a relational database, where data is broken up in to multiple rows existing in multiple tables, limiting (or eliminating) the duplication of data.
Although radically different, the document oriented approach is a very good fit for many applications. For some applications, data integrity is not the primary concern. Such applications can work just fine without the restrictions provided by a relational database, which were designed to preserve data integrity. Instead, giving up these restrictions lets document oriented databases provide functionality that is difficult, if not impossible to provide with a relational database. For example, it is trivial to setup a cluster of document oriented databases, making it easier to deal with certain scalability and fault tolerance issues. Such clusters can theoretically provide you with limitless disk space and processing power. (1)
Sounds fancy hey ?
So first things first, It’s a document oriented database; so imagine Pokémon cards; they have a whole series of information on each card . i.e. skill level’s, powers, character picture. Each card can exist on it own, for the benefit of this analogy each card is a document. A document oriented datbase is (roughly) packs and packs of these cards, each card may having different information e.g.Basic Pokemons, v’s Evolution Cards.
The cool thing is that a document oriented database such as CouchBase could store each card and each card type as a separate documents in the same collection of documents
CouchBase is a commercial version of the Apache CouchDB. (http://couchdb.apache.org/) To be fair CouchBase is family of products, Membase and CouchBase Single server.
Membase Server is a distributed key-value NoSQL database optimized for the data management needs of interactive web applications. Its API is a superset of memcached, the most widely deployed distributed key-value caching technology for web applications. But Membase goes well beyond in-memory-only caching to scale out and support live cluster topology changes while continuing to service data operations without performance degradation. (1)
Couchbase Single Server is powered by Apache CouchDB and boasts advanced NoSQL capabilities, like the ability to execute complex queries, maintain indices and store data with ACID transaction semantics. (1)
I set-up the CouchBase single server in a windows 7 64 bit desktop, cause it was easy.
The set-up was easy just next, next – finished and I was presented with a web based portal to manage the service.
I’m still powering away at loading in data and querying data, and I’ll save that up for my next Blog entry, Using CouchBase and NO-SQL.