Carl Strozzi introduced the NoSQL concept in 1998.NoSQL database stands for “Not Only SQL” or “Not SQL.”
NoSQL Database is a non-relational data management system. Which does not require a fixed schema. NoSQL is easy to scale and avoids joins. The major purpose of using a NoSQL database is for distributed data stores with very large data storage needs ,ex : Big data and real-time web apps.
NoSQL improves system Response Time while handling large data volumes by mechanism called "scaling out " where the database load is distributed across multiple hosts when ever load the increases .NoSQL is non relational it scales better than traditional Relational data bases since their design is customized according required to web applications .
NoSQL Databases a Throwback:
1. Carlo Strozzi introduced the term NoSQL to describe his lightweight, open-source relational database -1998.
2. Graph database Neo4j is launched-2000.
3. Google Big Table is launched- 2004.
4. Couch DB is launched -2005.
5. A paper on Amazon Dynamo is released-2007.
6. Facebooks open sources the Cassandra project-2008.
7. NoSQL was reintroduced -2009.
Features of NoSQL;
⦁ NoSQL databases don't follow relational model.
⦁ Does not tables with flat fixed-column records.
⦁ NoSQL always wok with self-contained aggregates / BLOBs.
⦁ No need of object-relational mapping or data normalization.
⦁ complex features like query languages, query planners, referential integrity joins, ACID are not required .
⦁ NoSQL databases are either schema-free or have relaxed schemas.
⦁ Schema definition of the data is not necessary .
⦁ heterogeneous structures of data in the same domain is a Plus.
⦁ Easy to use interfaces for storage, data querying .
⦁ APIs provides data manipulation at lower-level / selection methods.
⦁ Mostly used with HTTP REST and JSON
⦁ No standard based NoSQL query language is used mostly.
⦁ Web-enabled databases run as internet-facing services.
⦁ Execution of Multiple NoSQL databases happens in a distributed fashion.
⦁ NoSQL provides auto-scaling and fail-over capabilities .
⦁ ACID concept is often sacrificed for better scalability and throughput.
⦁ Uses Asynchronous replication between distributed nodes Asynchronous Multi-Master Replication, peer-to-peer, HDFS Replication.
⦁ Provides eventual consistency
⦁ Less coordination and higher distribution is achieved by Shared Nothing Architecture.
Types of NoSQL Databases:
a. Key-value Pair stores ex: Riak,Tokyo Cabinet.
b. Column-family stores ex : Big Table, Cassandra.
c. Graphs based ex : Infinite Graph, Flock DB.
d. Document-based ex: Mango DB , Couch DB.
e. Multi-Model ex : Orient DB .
Advantages of NoSQL:
⦁ NoSQL can be used as Primary / Analytic Data Source.
⦁ Capable of handling Big data.
⦁ NoSQL doesn't have Single Point of Failure.
⦁ Replication process is simple .
⦁ Separate Caching Layer is not required .
⦁ Performance is fast and l scales horizontally.
⦁ Structured, semi-structured, and unstructured data are handled with equal effect.
⦁ Flexible and easy to use Object Oriented Programming.
⦁ Dedicated high-performance server is not required.
⦁ Key Developer Languages and Platforms are supported.
⦁ Implementation is simple when compared to traditional database models.
⦁ Serve's as the primary data source for online applications.
⦁ Manages data velocity, variety, volume, and complexity while handling Big Data.
⦁ Excellent performance in distributed database and multi-data center operations.
⦁ No schema to Relaxed schema design provision can be achieved without downtime or disrupting the service .
Disadvantages of NoSQL:
⦁ NoSQL doesn't have standardization rules .
⦁ Query Capabilities are limited.
⦁ Traditional database models and tools are relatively matured than NoSQL.
⦁ Traditional database capabilities for ex: consistency when multiple transactions are performed simultaneously are not available .
⦁ Maintaining Unique Values as keys becomes difficult when data volume increases.
⦁ Not recommended while working with relational data.
⦁ Stiff learning Curve for beginners in development.
Conclusion: With vide variety of flavor's for every database need, with its own set of pro's and con's NoSQL has become the most used data base in today's fast moving technology world .