DevopsCurry
Published in

DevopsCurry

Looking inside NoSQL Databases

What are NoSQL Databases?

A NoSQL Database is a mechanism for storage and retrieval of data. It is also called a non-SQL or non-relational database that uses a variety of data models for accessing and managing the data. NoSQL databases are used in real-time web applications and huge data. They may support SQL-like queries as well. That is why it is sometimes referred to as Not only SQL.

NoSQL Databases works great with mobile, web, and gaming applications. Because it provides characteristics that work well with modern applications. Some of the features are flexibility, scalability, high-performance, and highly functional APIs.

Difference Between SQL and NoSQL

SQL (Structured Query Language) or See-Quel is the standard query language for Relational Databases. SQL works on queries like insert, search, update, and delete database records.

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.
  • Amazon DynamoDB: 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.
  • 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.
  • 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.
  • Oracle NoSQL: 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.
  • RavenDB: 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/

--

--

--

Making your DevOps journey easy and smooth.

Recommended from Medium

How to run containerized Bluetooth applications with BlueZ

Don’t miss out on these features on Tableau Server/Online

Spring-Cloud and Microservice(Part 2)

Simple Aggregation Metrics using DynamoDB

7 Software Product Development Challenges

Run Docker images on Microsoft Azure

Docker: The first container execution

3-Tier Architecture With Terraform and AWS Part 2 (Project Structure)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
DevopsCurry

DevopsCurry

More from Medium

Explore Data Structure and Algorithm Part-2

Choosing Appropriate Data Structure

Spring Data and Redis Keys