Term database was introduced in 1960. This was introduced as simple layer that would server as fundamental principle behind Information systems. New architecture of separating application from data was introduced.
In 1970s Edgar Codd proposed Relational model for storing Data. Relational model use SQL to let application find data within tables.
In 1990, After introduction of efficient hardware, Relational Model was used widely and became the dominant method for storing data using Relational Database Management Systems.
As we moved, applications began to produce wide range of data through complex systems. This large amount of data gave rise to concerns like database structure, scalability, and availability of data. This emerged term NoSQL.
Term NoSQL is not short for “no SQL”. It actually stands for “not only SQL”. NoSQL databases do not support relation model and and do not use SQL for querying.
NoSQL Database Classification:
Key-value stores: Data is saved with a unique key and a value. This is incredibly fast and this can scale to large size.
Column stores: They are similar to relational databases but they store all of the values for a column together in a stream instead of storing records.
Document stores: They save data without it being structured in a schema, with buckets of key-value pairs inside a self-contained object. This data structure is reminiscent of an associative array in PHP.
Graph databases: They store data in a flexible graph model that contains a node for each object. Nodes have properties and relationships to other nodes.
NoSQL database rely on distributed systems and ignore ACID the model and that is why they are scalable.
Advantages of NoSQL database:
- You can do things that were not possible with the processing and query power of traditional relational database.
- Data is scalable and flexible.
- There are new data models to consider. You don’t have to force data to be in Relational Model only.
- Writing data database is very fast.
Negatives of NoSQL:
- No common standards. Each database does things differently.
- Querying data does not involve familiar SQL model to find records.
- NoSQL databases are relatively immature and constantly evolving.
- Because a NoSQL database avoids ACID (Atomicity, Consistency, Isolation, Durability) model, there is no guarantee that all of the data will be successfully written.
List of applications where NoSQL was applied: