system-design-primer/resources/noat.cards/12 NoSQL.md

1.8 KiB

+++ noatcards = True isdraft = False weight = 120 +++

NoSQL

NoSQL introduction

NoSQL is a collection of data items represented in a key-value store, document-store, wide column store, or a graph database. Data is denormalized, and joins are generally done in the application code. Most NoSQL stores lack true ACID transactions and favor eventual consistency .

NoSQL under BASE principle

BASE is often used to describe the properties of NoSQL databases. In comparison with the CAP Theorem , BASE chooses availability over consistency.

  • Basically available - the system guarantees availability.
  • Soft state - the state of the system may change over time, even without input.
  • Eventual consistency - the system will become consistent over a period of time, given that the system doesn't receive input during that period.

In addition to choosing between SQL or NoSQL , it is helpful to understand which type of NoSQL database best fits your use case(s) . We'll review key-value stores, document-stores, wide column stores, and graph databases in the next section.

Source(s) and further reading: NoSQL