NoSQL Databases - Reading Assignment
1. What are some of the advantages of NoSQL databases compared to SQL databases?
Limitations of Relational Databases - SQL
⢠In relational database we need to define structure and schema of data first and then only we can process the data.
⢠Relational database systems provide consistency and integrity of data by enforcing ACID properties (Atomicity, Consistency, Isolation and Durability). However in most of the other cases these properties are significant performance overhead and can make your database response very slow.
⢠Most of the applications store their data in JSON format, RDBMS donât provide you a better way of performing operations such as create, insert, update, delete etc on this data.
Advantages of NoSQL
High scalability:
⢠Sharding is partitioning of data and placing it on multiple machines in such a way that the order of the data is preserved.
⢠Vertical scaling means adding more resources to the existing machine; Vertical scaling is not that easy to implement.
⢠Horizontal scaling means adding more machines to handle the data, on the other hand horizontal scaling is easy to implement. Horizontal scaling database examples: MongoDB, Cassandra etc.
⢠NoSQL can handle huge amount of data, as the data grows NoSQL scale itself to handle that data in efficient manner.
High Availability:
⢠Auto replication features in NoSQL makes it highly available because in case of any failure data replicates itself to the previous consistent state.
2. Do you have to define a strict structure for your data in NoSQL?
⢠There is no need to define a strict structure for your data since it can insert, update data on the fly.
3. What can you say about the trade-off between scalability and functionality in NoSQL?
⢠In NoSQL the advantages are High Scalability and High Availability.
*Structured or semi structured data, less functionality and high performance
⢠NoSQL has Constraints and Joins support is not required at database level.
4. If your data has important relationships that you need to keep track of, is it a good idea to use NoSQL?
⢠No, better to use relational database like SQL; it is a structured data that provides more functionality but gives less performance.