1.1. NoSQL - Why Are Relational Databases Not Good Enough?
Relational databases have existed for decades. The entity-relationship model is very powerful and with it, it is possible to model almost any structured data. SQL is the widely accepted standard for these databases. It supports the relational algebra operators like join, project, select, filter.
In the last decade, several companies saw the amount of data they needed to store and handle increase dramatically. They soon encountered problems scaling up and out. In his foreword on the "MongoDB Definitive Guide," Jeremy Zawodny explained it convincingly: once you add more replicas and shards, you realize you are stuck in the original schema you designed unless you invest considerable effort.
In order to solve this issue, a new generation of data stores appeared. They often share the same set of design principles: