Relational Databases became so popular that we started using them for almost everything, they are used for data flows, integrations etc. But what happened to the other forms of storing data?
Enter NoSQLAll other forms of data storage are now grouped under this weird name 'NoSQL databases'. So the best way to define a NoSQL database would be "Not a relational Database". If you come up with a new way of storing and retrieving data it would come under NoSQL database as long as it is Not a relational model.
- Key Value: As the name suggests, store and retrieve the data (Value) using key.
- Document Store: If the value you store is a document (xml, JSON etc.).
- Data-structure: Representing data in the form of a data structure and storing it.
- Graph: Representing data in the form of a graph data structure and storing the graph.
You might be thinking, so why should I care about NoSQL databases. Here are couple of reasons why:
- In general NoSQL databases perform much better when you have to load a large amount of data (data insertion is faster).
- NoSQL databases can easily to scale out (scale horizontally) compared to Relational DB.
- In certain cases they are just natural fit for the type of data being stored (e.g. JSON, XML, graph etc.)