Understanding NoSQL vs SQL (via Redis, MongoDB, DynamoDB)

preview_player
Показать описание
What are NoSQL databases? What needs do they serve? And what databases are worth learning?

The best way to explore that is by contrasting NoSQL databases with SQL databases. You see… SQL bases normalise data. SQL databases structure data using tables. And tables have a schema. Every row is the same “kind” of data.

And because SQL bases are targeted at the transaction use case, they are structured to follow the ACID rules we covered previously. However… Transactions are NOT the only possible use case. There are plenty of other use cases where a database is needed. Sometimes, scale or speed constraints are such that the solution is to selectively “break the rules”, so to speak.

It’s worth noting here that NoSQL initially meant “Not SQL.” It has now been “retconned,” at least for some databases, as “Not Only SQL,” as those databases support SQL queries.

However, NoSQL databases invariably make a trade-off. They sacrifice one or more aspects of the ACID rules or normalisation to perform better in a specific area or to meet a specific use case.

And that’s the best angle from which to understand the difference between NoSQL and SQL databases.

So let’s explore together:
- which use case the database was designed to meet,
- which ACID or normalisation rules it breaks,
- and which performance metric it gains by doing so
- and what specific weaknesses it has.

It’s worth noting that NoSQL databases are not the monolithic, homogenous group SQL databases are.

That means it’s impossible to cover every single NoSQL database here, so I’m going to cover my three favourite databases in depth, namely Redis, MongoDB and DynamoDB, and hand out some honourable mentions and tools to watch out for.

----
Рекомендации по теме
Комментарии
Автор

Outstanding! This is the first time i've seen a presentation that clarifies and elucidates the concepts so clearly. Much appreciated!

MrAverageViewer