The NoSql movement…

What is NoSql?

Wikipedia defines it as:

NoSql is a movement promoting a loosely defined class of non-relational data stores that break with a long history of relational databases. These data stores may not require fixed table schemas, usually avoid join operations and typically scale horizontally. Academics and papers typically refer to these databases as structured storage.

The NoSQL movement isn’t brand new as it has produced many different flavors over the years such as Document Stores(CouchDB,MongoDB,RavenDB), Graph(Neo4j), Key/Value stores on disk(Memcachedb,Redis,BigTable), Key/Value stores in RAM(Memcached), Eventually-consistent key-value store(Cassandra), Ordered Key-Value stores(MemcacheDB), Multivalue databases(OpenQM), Object databases(Db4o), Tabular(BigTable) and Tuple stores(Jini). There are probably many more.

The most popular type lately and of most interest to myself, has been the document stores that use the JSON format.  I believe that the advancement in JavaScript frameworks such as jQuery and ExtJS have really opened the door for them.

RavenDB

Raven is an Open Source (with a commercial option) document database for the .NET/Windows platform. Raven offers a flexible data model design to fit the needs of real world systems. Raven stores schema-less JSON documents, allow you to define indexes using Linq queries and focus on low latency and high performance.

  • Scalable infrastructure: Raven builds on top of existing, proven and scalable infrastructure
  • Simple Windows configuration: Raven is simple to setup and run on windows as either a service or IIS7 website
  • Transactional: Raven support System.Transaction with ACID transactions. If you put data in it, that data is going to stay there
  • Map/Reduce: Easily define map/reduce indexes with Linq queries
  • .NET Client API: Raven comes with a fully functional .NET client API which implements Unit of Work and much more
  • RESTful: Raven is built around a RESTful API

CouchDB

Apache CouchDB is a document-oriented database that can be queried and indexed in a MapReduce fashion using JavaScript. CouchDB also offers incremental replication with bi-directional conflict detection and resolution.

CouchDB provides a RESTful JSON API than can be accessed from any environment that allows HTTP requests. There are myriad third-party client libraries that make this even easier from your programming language of choice. CouchDB’s built in Web administration console speaks directly to the database using HTTP requests issued from your browser.

CouchDB is written in Erlang, a robust functional programming language ideal for building concurrent distributed systems. Erlang allows for a flexible design that is easily scalable and readily extensible.

MongoDB

MongoDB bridges the gap between key-value stores (which are fast and highly scalable) and traditional RDBMS systems (which provide rich queries and deep functionality).

MongoDB (from “humongous”) is a scalable, high-performance, open source, document-oriented database. Written in C++, MongoDB features:

One Response to The NoSql movement…

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>