When I was in school my instructor introduced me to relational databases. I mostly programmed in Oracle learning different types of JOINS and T-SQL statements. It was forbidden to talk about any other type database. Now, fast forward few years and everyone is talking about Document Databases. The NOSQL movement is all about non-relational databases. The word NOSQL might seems a little harsh if you are a DBA but the reality it just means that there are options other than relational databases. Think of NOSQL as NOT ONLY SQL and not NO T-SQL and your blood pressure will remain in stable condition.

A relational database stores the records in the form of relations. You know the primary key and foreign key concepts right! A document database stores the records in the form of documents. Each document database has a different method of persisting the records so I will just pick MongoDb randomly (it was a random pick). MongoDb stores the documents as BSON objects. BSON is simply binary JSON. The cool thing about MongoDb is that it is schema less. The schema will be build as you go. This eliminates the continous distration which we experienced when working with a relational database. For developers who advocates domain driven design this is a big deal since they can concentrate on this objects and easily perform test driven development without thinking too much about schema changes.

Each document in MongoDb can contain nested documents. This is how a relationship is created. And since there are no actual joins the fetching is extremely fast. The best thing to do is to try out MongoDb on your own and experience the a different culture.

I have written a couple of articles and created several videos on MongoDb which are available using the following links:

MongoDb Official Website

Articles:

Storing ViewState in MongoDb Database

Implementing Business Object to Documents Converter for MongoDb

Persisting Hierarchical Data Using MongoDb

Introduction to MongoDb Database

Videos:

Persisting Objects in the MongoDb Database Using C# Driver

Understanding ObjectId in MongoDb Database Using C# Driver

Saving Nested Documents in MongoDb Using C# Driver

Interacting with MongoDb Using C# Driver

Introduction to MongoDb Database

If you are in Houston, TX then I will be giving a session on MongoDb at the Houston Tech Fest 2010.