Looking inside NoSQL Databases
Tags: Redis, DevOps, Mongodb, NoSQL, Sql

Pros and Cons of NoSQL

The difference between SQL and NoSQL lies in the pros and cons of both. Let us discuss some of the Pros and Cons of NoSQL.

PROS of NoSQL:

* NoSQL is capable of handling and storing a large amount of data with little or no structure.

* It is economical and easy to install. There is no need to increase the hardware for scaling. More data can be processed at a minimum cost.

* NoSQL offers flexible scalability. It can work with low-cost hardware.

* NoSQL systems are capable of achieving high-level performances by limiting the range of what databases can do.

* It is low-cost and open source. Thus, NoSQL offers economical solutions for small enterprises.

* No need for detailed database modeling that will save you a lot of time.

* The ability of horizontal scaling. It is possible to add more inexpensive servers when your data requires more storage and connect them to the database clusters (horizontal scaling).

CONS of NoSQL:

* Inevitable consistency. NoSQL comes at the cost of relaxing ACID properties. You cannot learn enough about the semantics of the database due to the broad interpretation of ACID.

* Relatively less community support from vendors as compared to relational databases.

* Lack of standardization which creates problems during migration.

* Lack of flexibility in access patterns.

* NoSQL models were created for modern web applications. Hence it offers less analytic features for normal web applications.

List of Common NoSQL Databases

Redis : stands for REmote Dictionary Server. It is composed in ANSI C language, authorized under BSD, and is famous for a key-value store.Its an open-source database.It is an in-memory but persistent on-disk database.

: stands for REmote Dictionary Server. It is composed in ANSI C language, authorized under BSD, and is famous for a key-value store.Its an open-source database.It is an in-memory but persistent on-disk database. Amazon DynamoDB : uses a NoSQL database model, allows documents, graphs & columnar amount of data models.

: uses a NoSQL database model, allows documents, graphs & columnar amount of data models. Couchbase : its a NoSQL document database for interactive web applications. Comes with a flexible data model, is easily scalable, and offers consistently high performance.

: its a NoSQL document database for interactive web applications. Comes with a flexible data model, is easily scalable, and offers consistently high performance. MongoDB : open-source and document-oriented NoSQL database. Uses JSON like documents to share the data and is written in C++.MongoDB is a very popular and highly scalable database.

: open-source and document-oriented NoSQL database. Uses JSON like documents to share the data and is written in C++.MongoDB is a very popular and highly scalable database. Cassandra : it was developed at Facebook for inbox search. It is a distributed data storage system to handle large amounts of structured data. Cassandra is written in Java. It offers Cassandra Query Language (CQL), a SQL-like language for querying the Cassandra Database.

: it was developed at Facebook for inbox search. It is a distributed data storage system to handle large amounts of structured data. Cassandra is written in Java. It offers Cassandra Query Language (CQL), a SQL-like language for querying the Cassandra Database. Oracle NoSQL: it implements a map from user-defined keys to opaque data items.

it implements a map from user-defined keys to opaque data items. Apache HBase : distributed and non-relational Hadoop database ideally suited for storing Big data. Designed for the BigTable database by Google.

: distributed and non-relational Hadoop database ideally suited for storing Big data. Designed for the BigTable database by Google. RavenDB : it is a NoSQL document database. Offers a fully-transactional (ACID) data integrity across multiple documents.

: it is a NoSQL document database. Offers a fully-transactional (ACID) data integrity across multiple documents. Memcached: it is another popular in-memory key-value database.It is again open-source and has high-performance.

When to use NoSQL Database

Now that you know about the pros and cons of No SQL database, it is easier for you to decide when to use NoSQL Database. In the following cases, it will be ideal to use a NoSQL DB:

1. To handle a large amount of data. The data can be anything: structured, semi-structured, or unstructured.

2. If you have local data transactions that need not to be durable.

3. When you are required to follow modern software development practices.

4. If you need to do object-oriented programming.

5. If you are using schema-less data.

6. If you want to have economical yet efficient architecture.

7. If a relational database is not able to scale up the traffic in your budget.

We hope this article has helped you to have a better understanding of the NoSQL database and important pointers about the same. Thank you for reading.

PS: This article was originally published at: https://devopscurry.com/looking-inside-nosql-databases/