NoSQL

 


What is NoSQL?

"NoSQL is an accidental term with no precise definition"

NoSQL concept was introduced Carl Strozzi in 1998.

  • NoSQL is a non-relational data management system
  • Schema free (doesn't require fixed schema)
  • Easy to scalable and replication
  • Eventually consistent
  • Open source
  • No transaction support
NoSQL database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. 

NoSQL database includes simplicity of design, simpler horizontal scaling to clusters of machines and finer control over availability.

NOSQL systems are also sometimes called "Not only SQL".

The data structures used by NoSQL databases are different from those used by default in relational databases which makes some operations faster in NoSQL.

Why use NoSQL?

Remove the burden of data structures mismatch between application in-memory and relational databases.

NoSQL databases concept become popular with internet giants like Google, Facebook, Amazon, etc. who deal with huge volume of data. The system response time becomes slow when you use RDBMS for huge volumes of data.

Relational databases not designed to run efficiently on clusters.

Integrate databases using services , aggregate oriented databases are easier to manage and based on domain driven design.

NoSQL is typically good for unstructured or schema less data.

Easy to manage data and easy to understand.

Who use NoSQL?



  1. Google
  2. LinkedIn
  3. Twitter
  4. Facebook
  5. Amazon
  6. Adobe and Instagram

Features of NoSQL Databases

  • Multi-Model
  • Easily Scalable
  • Flexible
  • Distributed
  • Zero Downtime

RDBMS VS NoSQL

RDBMS

  • Structured and organized data
  • Structured query language (SQL)
  • Schema-centric
  • Complex data relationships
  • Joins
  • Database-centric
  • Well define standards
NoSQL
  • Unstructured and semi structured data
  • No declarative query language
  • Schema-free
  • Very simple relationships
  • Avoid joins
  • Application-centric or developer-centric
  • Standards no yet evolved

Types of NoSQL Databases

Key-value Database


Key-value stores are the least complex of the NoSQL databases.
The value in a key-value store can be anything.

Column-Family Database

Column-Oriented database work on columns and are based on Big table paper by Google.
Every column is treated separately. Values of single column databases are stored contiguously.


Document Database


Document-Oriented NoSQL DB stores and retrieves data as key value pair but the value part is sored as document.
The document is stored in JSON or XML formats. the value is understood by the DB and can be queried.

Graph Database

Graph type database stores entities as well the relations amongst those entities.
The entity is stored as a node with the relationship as edges.
An edge gives a relationship between nodes.
Every node and edge has unique identifier.

Comments