Sunday, 28 May 2017


                                                       Image result for NoSQL 
A NoSQL stands for  "non SQL", "non-relational" or "not only SQL". This database provides a mechanism for storage and retrieval of data other than tabular format. It was the need of needs of Web 2.0 companies such as Facebook, Google, and Amazon.com which handles large amount of data, we generally called as Big data.

Important points of NoSql are simplicity of design, Simple horizontal scaling and control on availability.
The data structures used by NoSQL databases are key-value, wide column, graph, or document. These data structures are more flexible than others.



Types and examples of NoSQL databases:


        

Data Structure
Examples
Column
Document
Key-value
Graph

NoSQL Database Types:

  • Document databases pair each key with a complex data structure known as a document. Documents can contain many different key-value pairs, or key-array pairs, or even nested documents.
  • Graph stores are used to store information about networks of data, such as social connections. Graph stores include Neo4J and Giraph.
  • Key-value stores are the simplest NoSQL databases. Every single item in the database is stored as an attribute name (or 'key'), together with its value. Examples of key-value stores are Riak and Berkeley DB. Some key-value stores, such as Redis, allow each value to have a type, such as 'integer', which adds functionality.
  • Wide-column stores such as Cassandra and HBase are optimized for queries over large datasets, and store columns of data together, instead of rows.
Image result for nosql database


SQL vs NoSQL:

Sr. No
NoSQL
SQL
          1.     
NoSQL database are primarily called as non-relational or distributed database.
SQL databases are primarily called as Relational Databases (RDBMS)
          2.     
NoSQL databases are the collection of key-value pair, documents, graph databases or wide-column stores 
SQL databases are table based databases whereas NoSQL databases are document based, key-value pairs, graph databases or wide-column stores
          3.     
NoSQL databases have dynamic schema for unstructured data.
SQL databases have predefined schema
          4.     
NoSQL databases are horizontally scalable
SQL databases are vertically scalable
          5.     
 NoSQL database, queries are focused on collection of documents. Sometimes it is also called as UnQL (Unstructured Query Language)
SQL databases uses SQL ( structured query language ) for defining and manipulating the data, which is very powerful
          6.     
NoSQL database examples: MongoDB, BigTable, Redis, RavenDb, Cassandra, Hbase, Neo4j and CouchDb
SQL database examples: MySql, Oracle, Sqlite, Postgres and MS-SQL.
           7.     
NoSQL database fits better for the hierarchical data storage as it follows the key-value pair
 SQL databases are not best fit for hierarchical data storage
           8.     
 it is still not comparable and sable enough in high load and for complex transactional applications.
SQL databases are best fit for heavy duty transactional type applications
           9.     
NoSQL database you still have to rely on community support, and only limited outside experts are available
Excellent support are available for all SQL database from their vendors. 
           10.   
NoSQL database follows the Brewers CAP theorem ( Consistency, Availability and Partition tolerance )
SQL databases emphasizes on ACID properties 

The Benefits of NoSQL

When compared to relational databases, NoSQL databases are more scalable and provide superior performance, and their data model addresses several issues that the relational model is not designed to address:
  • Large volumes of rapidly changing structured, semi-structured, and unstructured data
  • Agile sprints, quick schema iteration, and frequent code pushes
  • Object-oriented programming that is easy to use and flexible
  • Geographically distributed scale-out architecture instead of expensive, monolithic architecture.