Sobes.tech
Senior

Jaký je rozdíl mezi relačními a nerelationalními úložišti? Mluvte o ACID.

sobes.tech AI

Odpověď od AI

Vztahové úložiště (například PostgreSQL, MySQL) organizují data do tabulek s jasně definovanými schématy (řádky a sloupci), podporují vztahy mezi tabulkami (přes klíče) a používají jazyk SQL pro dotazy. Zajišťují přísné záruky integrity dat a podporují transakce s vlastnostmi ACID.

Nejvztahovější úložiště (NoSQL) jsou flexibilnější: mohou ukládat data ve formě dokumentů (MongoDB), klíč-hodnota (Redis), grafů (Neo4j) nebo sloupců (Cassandra). Často se horizontálně škálují a jsou optimalizována pro specifické úkoly, ale nemusí poskytovat úplné záruky ACID.

ACID je soubor vlastností transakcí:

  • Atomickost: transakce je buď úplná, nebo vůbec ne.
  • Konzistence: transakce přenáší databázi z jednoho správného stavu do jiného.
  • Izolace: paralelní transakce se navzájem neovlivňují.
  • Trvalost: po potvrzení jsou změny transakce navždy zachovány.

Vztahové databáze obvykle striktně dodržují ACID, což je důležité pro systémy citlivé na integritu dat. NoSQL databáze mohou používat slabší modely konzistence pro lepší výkon a škálovatelnost.