NoSQL Databases

Why NoSQL over SQL?

Unlike the developers in the past, developers and development teams are now creating applications that create dynamic data types which are massive and unpredictable in structure. i.e They may be structured, semi-structured, unstructured or can be polymorphic. The Waterfall development life cycle is hardly practiced these days and nowadays even small teams work according to agile methodologies and agile sprints making the agile method more popular. In such a case, code is pushed very frequently. The applications developed through such methods are no longer created to cater the needs of a fixed number of users, instead they're developed as services which should be always available at the request of millions of users and should be readily available at different locations. Also, organizations are now scaling out their architectures and use FOSS (Free and Open Source Software), cloud services instead of maintaining large storage infrastructure.

The traditional Relational Databases weren't created for these rapidly scaling agile-built applications, dynamic datatypes and growing firms. They had a "fixed" tag when it comes to expansion and agility. So, NoSQL databases were seen as a viable solution to this growing problem of data representation and scaling. NoSQL provides a wide range of different database technologies that solve the above bottlenecks faced in building modern applications.

What is NoSQL?

The term NoSQL has two abbreviations. One is as you see : "No SQL" and the other one is "Not Only SQL". It is a non relational database and there are variety of NoSQL database types and they're explained below.


  • Document databases
    • A document database is a type of non-relational database that is designed to store semistructured data as documents. Document databases are intuitive for developers to use because the data in the application tier is typically represented as a JSON (JavaScript Object Notation) document.
    • The code snippet given below is an example for JSON.                
{
 "name":"Manoj",
    "age":22,
    "education":{
     "primaryEducation":"Hindu College Colombo",
        "secondaryEducation":primaryEducation,
        "tertiaryEducation":"SLIIT"
    }
    "car":{
     "model":{
         "audi":{
             "A5":"Audi A5 sportback",
                "A8":"Audi A8L"
            }
            "land_rover":{
              "rangeRover":{
                     "sport":"Range Rover Sport",
                        "velar":"Range Rover Velar",
                        "evoque":"Range Rover Evoque"
                    }
            }
            "suzuki":{
             "car":"Suzuki WagonR Stingray 2018",
                "van":"Suzuki Every 2006"
            }
        }
    }
    "hobby":"watching audi videos"
}


  • Graph stores
    • A graph database,  also called a graph-oriented database, is a type of NoSQL database that uses graph theory to store, map and query relationships. A graph database is essentially a collection of nodes and edges and mainly store networks of data.
Graph store

  • Key Value stores
    • A key-value database, or a key-value store, is a data storage paradigm designed for storing, retrieving, and managing associative arrays, a data structure more commonly known today as a dictionary or hash table.

key value storing method


  • Wide column store
    • wide column store is a type of NoSQL database. It uses tables, rows, and columns, wait! It isn't a relational database instead, the names and format of the columns can vary from row to row in the same table. A wide column store can be interpreted as a 2D key-value store.
A wide column store

You can check the list of NoSQL databases Here. Currently there are more than 225 databases which is mainly dominated by Document type databases. Apart from the types mentioned above, there are other types of databases like Multi-value database, Event source and Streaming database etc.


Advantages of NoSQL

  • The ability to handle large volumes of structured, semi-structured, and unstructured data.
  • Cope up with agile sprints, quick iteration, and frequent code pushes.
  • Apply the basic principles of object-oriented programming which is easy to use and flexible
  • NoSQL databases are efficient, scale-out architecture instead of expensive, monolithic architecture


Comments

  1. Top stuff...covered up the basics

    ReplyDelete
  2. Nicely done, Thank you for sharing such a useful article. I had a great time. This article was fantastic to read. continue to write about

    Data Engineering Solutions
     
    Data Analytics Solutions

    Business Intelligence Solutions

    Artificial Intelligence Solutions

    ReplyDelete
    Replies
    1. Thank you for your response! Will continue writing more about interesting topics! :)

      Delete

Post a Comment

Popular posts from this blog

JavaScript!

HTTP Status codes

Node.js