Understanding Non-Relational (NoSQL) Databases (Part 1)
Tags: mongodb, nosql
Published: 2020-07-17 06:11:03

This article is a 3 part series around NoSQL to help understand the features and different types of Non-Relational (NoSQL) databases.

## History of NoSQL Databases

Relational database model the foundation of RDBMSs (Relational Database Management Systems), was invented in 1970 by Edgar Codd a Computer Scientist working at IBM (E. Codd, 1970). Relational databases arrange structured data into rows and columns associated with a specific primary key for each row, it is also known as SQL (Structured Query Language). Popular SQL databases are Microsoft SQL Server, MySQL, and Oracle Database.

The term Non-Relational databases (NoSQL) was first termed in 1998 for a relational database that didn’t use SQL (C. Strozzi, 2007), and was picked up in 2009 at conferences promoting NoSQL such as the NoSQL meetup in San Francisco organised by Jon Oskarsson a Last.FM developer. Erik Evans a blogger and Rackspace employee made the NoSQL term popular and described the ambitious movement as “The whole point of seeking alternatives is that you need to solve a problem that relational databases are a bad fit for” (E. Evans, May 2009).

Eric identified a few shortcomings with RDBMSs that needed to be addressed due to the challenges faced when handling sizeable amounts of unstructured data, which was growing exponentially because of the rise of social media platforms such as Facebook. This is where NoSQL came in to handle unstructured big data efficiently to maximise business value and bring customer satisfaction.

## What are NoSQL Databases

A Non-Relational Database is a database technology that does not incorporate Relational Database Management Systems (RDBMS) strict rules of modelling structured data as tables, rows, and columns. They are also known as NoSQL databases and have risen in importance because of the rise of Big Data which refers to large, diverse sets of unstructured data that grow at an ever-increasing rate (T. Segal, July 2019). 

NoSQL databases refer to a broad class of non-relational databases namely key-value, wide-column, document and graph databases which use Application Programming Interfaces (APIs) to provide Create, Read Update, and Delete (CRUD) access, unlike classical RDBMSs which uses SQL as the primary query language.

## Benefits of NoSQL Databases

Below are the benefits of using NoSQL databases over RDBMSs:

### High Scalability

NoSQL Databases handles partitioning (sharding) of data across several servers enabling horizontal scaling as data storage requirements grow. Compared to RDBMSs which vertically scale by upgrading to more powerful thus expensive hardware as demand grows.

### Lower Cost

NoSQL Databases are designed to use cheap commodity server clusters for the management and storage of data. On the other hand, RDBMSs use expensive storage systems and patented servers.

### No Complex Relationships

NoSQL databases support their own access language through APIs to interpret the data being stored which gives developers flexibility in data access, rather than using SQL to make multiple complex table joins on RDBMSs.

### Unstructured Data

Unstructured data brings flexibility and rich interleaved information web which can be used for advanced searching and data analysis.

### Higher Throughput

Some NoSQL databases have higher data throughput compared to traditional RDBMSs, for example, Googles Bigtable (column-store Hypertable) allows Zvents search engine to store one billion data cells per day (J. Doug April 23, 2008).

## Issues of NoSQL Databases

### Security Issues

NoSQL database face considerable security issues such as being vulnerable to SQL Injection, Lack of encryption during client-server communication and unable to use external encryption tools like LDAP and Kerberos.

### Lack of Standardisation

Database designs and query languages of NoSQL databases vary between different software vendors and services, this presents a learning curve when learning multiple NoSQL database structures and queries.

### New Technology

NoSQL is new compared to traditional RDBMSs with lesser support and adoption by larger organisations such as banks. 

[[Part 2] Types of NoSQL Data Storages](https://dev.to/nyashanziramasanga/types-of-nosql-data-storages-part-2-mi8?preview=58c23eb87d232ac2b9fd7edb238575e735188199bb5177ef57f941dd73ba89b378fd8b38c818c60edbce71bfb145ece50b30b8312ad19b75de8618ad)

[[Part 3] Document Store Database - MongoDB](https://dev.to/nyashanziramasanga/document-store-database-mongodb-part-3-3dne-temp-slug-9317257?preview=5243e39ccf173731c271e0db7b47d254ff6bacab568a704d140589d1fc694ad9d26aaf87ce216b7b2ed88938303e8c63a7f69bcd36f38ea7eea37ef3)