Although relational DBMS has been around for a long time and is heavily used in enterprise applications, it has a few common disadvantages:
- Relational database systems are not very scalable
- They require upscale hardware architecture to ensure database performance
- Data storage is not very flexible
To address these issues within RDBMS, 10gen started developing MongoDB in 2007. MongoDB is a document-oriented database system, planned to be a platform-as-a-service (PaaS). In 2009, MongoDB was shifted to an open-source model. The company was rebranded as MongoDB, Inc., in 2013.
MongoDB is different from other major database platforms such as MSSQL, Oracle or MySQL, as it avoids the table-based RDBMS structure, and opts for dynamic schemas which uses JSON document format. This makes MongoDB data integration easier, faster, and scalable for certain types of software applications.
MongoDB is based on NoSQL. What is NoSQL?
NoSQL provides a database architecture where the data storage and retrieval happen without using tabular forms, thus avoiding the use of SQL. NoSQL uses data structures such as key-value pairs, documents, and graphs to store data.
Based on the 2015 rankings, MongoDB is one of the most popular NoSQL databases. It is also the most popular document based database.
MongoDB comes with a set of very useful features, including:
- Replication and highly available service: MongoDB uses what’s known as replica sets to provide high availability. Each replica consists of multiple sets of data – the primary and secondary replicas. All reads and writes are performed on the primary replica, while the secondary replicas are built through built-in replication using the primary replica. Since both the replicas are always in sync, when the primary fails, one of the second replicas can be selected to replace it.
- Full index support: Any field (including embedded documents and arrays) in MongoDB database can be indexed.
- High scalability: This is achieved using sharding. There’s a shard key that determines how to distribute data in a data collection. Data is then split into several ranges and distributed to different shards.
- Good community/tech support: The wide usability of MongoDB has attracted a lot of database developers, which has helped create a strong technical support community around it. This community consists of software architects, DBAs and software developers, who all provide support with technical and non-technical queries related to MongoDB development.
- Enhanced query support: With MongoDB, you can make ad hoc queries, even using regular expressions. It can also utilize user-defined Java Script functions for querying documents.
Moving to the cloud
In June 2016, MongoDB, Inc. introduced Mongo DB Atlas, a database-as-a-service platform available globally for all database developers and users. MongoDB Atlas is a result of a five year effort to develop a platform which is capable of running MongoDB on the cloud.
With the use of MongoDB Atlas, the developers will no longer need to worry about operational management tasks related to their database environment such as hardware management, configurations, upgrades, backups, and recovery. Atlas is managed by the best database engineers at MongoDB who take care of all operational tasks so the developers can focus on their database design and application development only.
Looking at the current development of MongoDB and what it has achieved over the span of its short lifetime, the future for MongoDB is quite promising. Advanced BI support is one of the key feature enhancements that the DB developers can expect in the future. According to InfoWorld, some other new features that fall in line with the latest version MongoDB 3.2 are in-memory storage engine, encrypted storage engine, BI connectors for tools like BusinessObjects and Tableau, and multi-document transactions.
EPM applications help measure the business performance. This post will help you choose the best EPM solutions for your organization’s needs and objectives.
Imagine there are over one hundred logins in the source server and you need to migrate them all over to the destination server. Wouldn’t it be awesome if we could automate the process by generating the scripts for the required tasks?