NoSQL Database: MongoDB


NoSQL databases can be defined as “Next Generation Databases” [1] which are “non-relational, distributed, open-source and horizontally scalable.” [1]
Example-

MongoDB is a free, open-source, document-based NoSQL database, developed by MongoDB Inc. and as of a September 2016 report, the most popular one is the NoSQL models. [2] It was released in 2009. Some of it’s well known users include Adobe, eBay, MetLife, McAfee, and SAP.[2]

How does it differ from relational databases?

Some of the main ways MongoDB differs from relational databases are-

1. Database model

The data is “represented as tuples and grouped into relations.” The data is stored in well-organized tables. [3]

MongoDB stores data in binary-encoded serialization of JSON-like documents with dynamic schemas – BSON. This data is typically unstructured and cannot be stored in organized tables.

2.Transactional Reliability

Relational databases guarantee “very high transaction reliability” [3] as they fully support

ACID (Atomic, Consistent, Isolated, Durable)

The NoSQL databases, like MongoDB, however range from BASE (Basic Availability, Soft-state, Eventual consistency) to ACID. [4]

3. Scalability

Relational databases need to be “vertically” scaled by “adding more hardware resources like RAM, CUP, etc” [3] which becomes due to extremely high costs and hardware limitations.

MongoDB, like all other NoSQL databases depends on “horizontal scalability” where “more commodity nodes or system unites are added” [3] to accommodate necessary growth, and this can be done almost seamlessly.

4. Cloud

Enterprise relational database weren’t designed with the Cloud in mind. Thus they do not support “full content data search and are hard to scale”. [3]

On the other hand, the NOSQL databases like MongoDB work very well in the Cloud environment as they are not “ACID compliant” [3] and they offer “improved availability, scalability, performance and flexibility” as they deal “with unstructured, semi structured data or structured data”. [3]

5. Handling of Big Data

While relational databases can efficiently handle entries-level data management challenges, Big Data is definitely out its scope due to issues with scalability and distribution.

The new generation NoSQL have been exclusively designed for Big Data and have specifically implemented methods to efficiently handle the complexities of storing and retrieving Big Data. [3]

6. Caching

Caching is not inherent to relation databases and need to be “performed using separate infrastructure.”

NoSQL databases, like MongoDB, “techniques cache data in system memory” to “increase data output and performance improvement” [5]

7. Crash Recovery

Relational databases recover from crashes with their “recovery manager” [3] which uses log files to ensure atomicity and durability of data.

MongoDB, on the other hand, depends on “replication as backup to recover from the crash” by using “Journal files” [3]

8. Security

Relational databases have been evolving over the years and have sophisticated security measures against vulnerabilities like “SQL injection, Cross Site Scripting, Root Kits, Weak communication protocols” [3] etc .
Many NoSQL databases, including MongoDB are still working on filling the security gaps in their data models, which primarily came about to handle the challenges of Big Data.

Usefulness of NoSQL databases like MongoDB

NoSQL has been specifically designed for handling Big Data, for being seamlessly horizontally scalable with exponential growth of data volume (without the overhead of crippling costs and hardware limitations), to efficiently handle extremely large numbers of concurrent, of being deployable into the Cloud, of flexibly in handling unstructured data which cannot be neatly classified and normalized into efficient tables, and for having superior caching abilities to improve performance. It is thus, an authoritative answer to the growing needs of Big Data Management.

References-

[1] Edlich, P. D. (n.d.). List Of NoSQL Databases [currently 225]. Retrieved from http://nosql-database.org/

[2] DB-Engines Ranking. (n.d.). Retrieved from http://db-engines.com/en/ranking

[3] Parker, Z., Poe, S., & Vrbsky, S. V. (n.d.). Comparing NoSQL MongoDB to an SQL DB. Retrieved from http://delivery.acm.org/10.1145/2510000/2500047/a5-parker.pdf

[4] John, B. (n.d.). John D. Cook. Retrieved from http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/

[5] The Evolution of NoSQL Databases. (n.d.). Retrieved from http://www.rapidvaluesolutions.com/the-evolution-of-nosql-databases/