Monday, May 11, 2020

Introduction to NoSQL

NoSQL, as many of you may already know, is basically, a database used to manage huge sets of unstructured data, where in the data is not stored in tabular relations like relational databases. Most of the currently existing Relational Databases have failed in solving some of the complex modern problems like :

  • Continuously changing nature of data - structured, semi-structured, unstructured and polymorphic data.
  • Applications now serve millions of users in different geo-locations, in different timezones and have to be up and running all the time, with data integrity maintained
  • Applications are becoming more distributed with many moving towards cloud computing.

NoSQL plays a vital role in an enterprise application which needs to access and analyze a massive set of data that is being made available on multiple virtual servers (remote based) in the cloud infrastructure and mainly when the data set is not structured. Hence, the NoSQL database is designed to overcome the Performance, Scalability, Data Modelling and Distribution limitations that are seen in the Relational Databases.

What is Structured Data?

Structured data is usually text files, with defined column titles and data in rows. Such data can easily be visulaized in form of charts and can be processed using data mining tools.

What is Unstructured Data?

Unstructured data can be anything like video file, image file, PDF, Emails etc. What does these files have in common, nothing. Structured Information can be extracted from unstructured data, but the process is time consuming. And as more and more modern data is unstructured, there was a need to have something to store such data for growing applications, hence setting path for NoSQL.

NoSQL Database Types

Following are the NoSQL database types :

  • Document Databases : In this type, key is paired with a complex data structure called as Document. Example : MongoDB
  • Graph stores : This type of database is ususally used to store networked data. Where in we can relate data based on some existing data.
  • Key-Value stores : These are the simplest NoSQL databases. In this each is stored with a key to identify it. In some Key-value databases, we can even save the typr of the data saved along, like in Redis.
  • Wide-column stores : Used to store large data sets(store columns of data together). Example : Cassandra(Used in Facebook), HBase etc.