Why NoSQL?? This question may emerge in our mind when we first hear it, when the market is already filled with lots of relational DB which is favorite since decades and is supported by big players in the market.
Following points could help you to understand the limitation and challenges with the traditional relational DB.
- With the boom in internet era and smartphones there has been an increase in data generated by these applications and also it is growing rapidly. This has become a major area of focus in order to manage those data.
- Increasing adoption of agile methodology in order to decrease the time to market an application/software solution, there is a need of schema less database which accelerates the development without worrying about the schema/storage.
- With the popularity of the Web2.0, technology use of JSON formatted data has increased rapidly since it flows from client end to sever easily and is easy to manage.
So these days applications have implicit requirements like managing tons of data, less time to market, support JSON format data at the storage end. Fortunately, we have a solution : NoSql Database, with high rate of adoption. NoSql generally stands for Not only SQL.
There are majorly 4 different types of NoSql Databases:
- Wide Column Type
- Document Type
- Key-Value Type
- Graph Type
Each type solves a specific problem of software development.
Here I will mention about key features of MongoDB, a document based NoSQL database which has become most popular according to the DBEngineRanking monthly ranking.
So what are the key features that made the MongoDb so popular?
Most popular in this is :
- Schema less database
MongoDB doesn’t restrict the developers to define the DB structure, you can directly insert json objects with as many number of fields in it. Within a collection(table in relational terminology) it is possible to have documents(a row in relational terminology) with different fields in it.
This feature helps developers to add new fields as and when the requirement changes occurs.
- Fast processing
With the traditional relational databases there is a problem that it encourages normalization hence results into a performance lag while fetching data from multiple tables.
But in MongoDB documents can contain all the information which sometimes don’t require any join at all which in turn results into higher performance. It is useful in cases where application is generating a lot of data but you don’t need them at all in application in future.
A web developer working in an application doesn’t have to switch the language while interacting to database and application.
- Dealing with unified format of data – JSON
JSON is quite popular while dealing with data at client hence need not convert that data into some other format or structure and directly save to database.
- Easy to set up
The process of setting up the MongoDB is very very simple. It uses c:\data\db to store its document.
- Sharding – Horizontal Scaling
This term refers to scaling at horizontal level i.e. you can partition your data and hence reduce the work load to different server based on where that data is present.Well this was a quite brief about the MongoDB, But I hope this could attract your attention to this nex-gen technology for adoption in your next project or may be POC(PILOT).