Until around 2010, the choice of data storage was quite limited. Whether your preferred choice was Oracle, MySQL, or PostgreSQL, you were pretty much bound to using a relational model for your data.
Then, suddenly, a plethora of new database engines popped up out of nowhere, with partial-to-no support for relational data. They were so different that they defied positive categorization, so the world ended up naming them based on what they didn't do—NoSQL databases. Indeed, their only commonality was that the support for SQL was little-to-none. The list of engines is long and changing, but at the time of writing, a few are prevalent—Redis, MongoDB, DynamoDb, Cassandra, and Couchbase, among others. Each of these engines has its own strengths and weaknesses, and the reason for their appearance is optimizing for...