NoSQL (Non SQL) is specially design for large amount of data store in distributed environment. The term NoSQL was first used by Carlo Strozzi in the year 1998.
NoSQL is not a RDBMS (Relational Database Management System). The important feature of NoSQL (Non SQL) is, it is not bounded by table schema restrictions like RDBMS. It gives options to store some data even if there is no such column is present in table. NoSQL generally avoids join operations.
In real time, data requirements are changed a lot. Data is easily available with Facebook, Google+, Twitter and others. The data that includes user information, social graphs, geographic location data and other user generated content.
To make use of such abundant resources and data, it is necessary to work with a technology which can operate such data. SQL databases are not ideally design to operate such data. NoSQL databases specially design for operating huge amount of data.
Advantages –
- Good resource scalability.
- Lower operational cost.
- Supports semi-structure data.
- No static schema.
- Supports distributed computing.
- Faster data processing.
- No complicated relationships.
- Relatively simple data models.
Disadvantages –
- Not a defined standard.
- Limited query capabilities.
Companies working with NoSQL (Non SQL) :
- Google.
- Facebook.
- LinkedIn.
- McGraw-Hill Education.
NoSQL Basic Concepts :
(1) Consistency – Database must remain consistent state like before, even after the execution of an operation.
(2) Availability – It indicates that NoSQL system is always available without any downtime.
(3) Partition Tolerance – This means that the system continues to function even the communication failure happens between servers. i.e. If one server fails, other server will take over.
Case Study NoSQL (SQL vs NoSQL) :
SQL Databases are Relational Databases (RDBMS); whereas NoSQL database are non-relational database.
Data Storage –
- SQL Databases stores data in a table whereas NoSQL databases stores data as document based, key-value pairs, graph databases or wide-column stores.
- SQL Data is stored in form of tables with some rows.
- NoSQL data is stored as collection of key-value pair or documents or graph based data with no standard schema definitions.
Database Schema –
SQL Databases have predefined schema which cannot be change very frequently. Whereas NoSQL databases have dynamic schema which can be change any time for unstructured data.
Complex Queries –
- SQL Databases provides standard platform for running complex queries.
- Non SQL does not provide any standard environment for running complex queries.
- NoSQL are not as powerful as SQL query language.
NoSQL Database Types :
Different Architectural Patterns in NoSQL –
- Key-Value databases examples : Riak, Redis, Memcached, BerkeleyDB, UpscaleDB, Amazon DynamoDB.
- Document databases examples : MongoDB, CouchDB, Terrastore, OrientDB, RavenDB.
- Column family stores examples : Cassendra, HBase, HyperTable.
- Graph Databases examples : Neo4j, InfiniteGraph, FlockDB.
(1) Key-Value store databases – This is very simple NoSQL Database. It is specially design for storing data as a schema free data. Such data is store in a form of data along with indexed key.
(2) Column Store database – Instead of storing data in relational tuples (Table rows), it is stored in cells grouped in columns. It offers very high performance and a highly scalable architecture.
(3) Document Database – Document databases works on concept of key-value stores where “documents” contains a lot of complex data. Every document contains a unique key, used to retrieve the document.
(4) Graph database – Data is store as a graph and their relationship is store as a link between them whereas entity acts like a node.
Benefits of NoSQL :
(1) Big Data Analytics –
- Big Data is one of the main feature promotes growth and popularity of NoSQL.
- NoSQL has good provision to handle such big data.
(2) Better Data Availability –
- NoSQL Databases works with distributed environments.
- It should provide good availability across multiple data servers.
- NoSQL databases supply high performance.
(3) Location Independence –
- NoSQL Database can read and write database regardless of location of database operation.