When do you choose NoSQL?

Executive Summary

NoSQL, which refers to Non-Relational Database, is widely used in modern software development, especially for Big Data and real-time applications, due to its advantages of dynamic schema, horizontal scalability and fast queries. The most frequently cited drawback is the lack of ACID supports for transactions across multiple documents, whereas appropriate schema design, e.g. single denormalized record atomicity, could address the concern.

Comparison between NoSQL and RDBMS

Feature NoSQL RDBMS
Schema Dynamic.

Various structures in different records. Data are usually denormalized for flexible design and fast retrieval in queries. Suitable for hierarchical data structure and frequently changes.
Highly structured.

Data are stored in the same pre-defined structure. Data are required to be normalized in multiple tables with relationships. Suitable for predictable data and consistent volume.
Scalability Horizontally scalable.

Sharding or Addition of more servers in case of more traffic and larger volume required. Increasing servers becomes much easier in a cloud platform.
Vertically scalable.

More powerful CPUs, more memory RAM, larger SSD are added to a single server. It means the hardware requires more high-end and more expensive.
Performance Fast for single document.

Data are typically stored in a way optimized for query. Denormalized data retrieval is simple and tends to be flat. Fast writes where write safety is not critical. Operations are typically conducted via platform specific APIs.
Efficient for multiple normalized tables.

Data retrieval requires table joining, which is an expensive operation, to form a result object. Suitable for complex queries and reports. Operations are typically conducted via standard SQL and stored procedures.
Property Followed BASE.

Basically Available, Soft State and Eventually Consistency. In CAP theorem, it follows Availability and Partition Tolerance.
ACID.

Atomicity, Consistency, Isolation, Durability. In CAP theorem, it follows Consistency and Availability.

Recommended Use Cases

  • Personalization with most demanding workloads, profile update on the fly, low latency delivery and real-time engagement.
  • Profile Management for easier and less expensive to scale in distributed databases for growing user profiles.
  • Real-time Big Data to receive data feed, store them and serve analytic results from various sources.
  • Content Management with flexible data model for storing any type of user generated content.
  • Catalog to offer aggregate catalog data to resolve complexity and data management challenges caused by fragmentation by application, business unit or brand.
  • Customer 360 View to enable multiple applications to access the same customer data of unpredicted numbers of products, services, channels, brands and business units, with various attributes without affecting others.
  • Mobile Application to serve small deployment in the beginning and further expansion for increasing growth of user volume. 
  • Internet Of Things requiring concurrent data access to millions of connected devices with large volume, velocity and variety of machine generated data.
  • Digital Communications which delivers sub-millisecond responsiveness and millions of concurrent users.
  • Fraud Detection relying on data such as detection algorithm rules, customer information, transaction information, location, time of day, etc, and expecting immediate confirmation in low latency.

References



Comments

Popular posts from this blog

Event: Developer Productivity Engineering: What's in it for me?

Mark Six Analyst

Ethical Hacking 101