So, what has changed in the past few years?
- The volume of data has increased tremendously.
- The kind of data we are dealing with has changed. We no longer have the plain-old text format to deal with. We have audio, videos, images, and other complex formats of data that needs to be dealt with.
- Number of users accessing the internet and using applications or performing transactions has increased globally.
- Multiple kinds of devices (desktop, laptop, tablets, smart phones, smart watches etc.) are now being used by people form all over the world.
- Storing and processing huge amount of data the old-school way has become impossible. Organizations are moving to distributed computing and big data for faster processing of their applications.
Relational databases are not able to cope up with these challenges, which is how and why NoSQL databases have come to rescue. NoSQL databases are highly scalable and have better performance when dealing with the amount of data we are talking about.
- NoSQL databases can handle large volumes of structured, semi-structured and unstructured data.
- They can easily fit into the agile development model.
- They use object-oriented APIs for queries which is quite flexible and easy to use.
- They have a distributed architecture (sometimes geographically distributed) which use commodity servers which are inexpensive and affordable.
- They scale horizontally i.e. new commodity servers can be easily added to the architecture when the capacity needs to be increased. Its cost-efficient as commodity servers are comparatively less expensive.
NoSQL Database Types
They are the simplest form of NoSQL databases which have only two things- key and value. Every item in the database is stored as an attribute names ‘key’ together with it’s ‘value’. Examples of key-value stores are Riak, Berkeley DB, Redis.
These databases store data in columns instead of rows. Examples of this type are Cassandra and HBase.
These databases are used to store information about networks such as social connections. Examples of graph stores are Neo4J and Giraph.
These databases pair each key with a complex data structure known as a document. A document can hold any kind of data whether they are key-value pairs, arrays, documents or nested documents. They can be of JSON, XML or any other format. Examples of this type are MongoDB, DynamoDB.