Sunday, November 2, 2014

MongoDB Overview

https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcRPQlQur8o_5jMo6lLJlr7-NQg7DYkzNvhrPwy7wY-xRIjjGSt-
MongoDB is the most popular NoSQL database system. The word MongoDB comes from ‘humongous’. It is a cross-platform document-oriented database system. It is free and open source software. It developed by Software Company 10gen in October 2007. It shifted to open source development model in 2009. MongoDB is written in C++ language and supports with dynamic schemas. MongoDB calls the format BSON.
MongoDB has been adopted as backend software by a number of major websites and services.
The following image show the operational database landscape


MongoDB was designed from the ground up to be easy scale to multiple distributed servers. Two of the biggest problems in distributed database design are distributed join operation and distributed transactions. Both of these operations are complex to implement, and can yield poor performance or even downtime in the event the server become unreachable. 

By kicking on these problems and not supporting joins or multi document transactions at all, MongoDB has been able to implement an automatic sharding solution with much better scaling and performance characteristics than you’d normally be stuck with if you had to take relational joins and transactions into account.
The following images shows the relation between relational data and BSON file format
MongoDB is built for agile development. It has schema less and this is dynamic schema, which can evolve as applications evolve without requiring expensive migrations. In addition, MongoDB stores data using JSON-like documents, which map naturally to object-oriented programming. The documents stored in the database can have varying sets of fields, with different types for each field. One could have the following objects in a single collection:
{ name : “Joe”, x : 3.3, y : [1,2,3] } { name : “Kate”, x : “abc” } { q : 456 }

Cheers!
Uma