Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Wat is ACID? | Acid
SQL-Optimalisatie en Queryfuncties

Wat is ACID?

Veeg om het menu te tonen

We beginnen onze verkenning van geavanceerde SQL-onderwerpen met het concept van ACID-principes.

Note
Meer leren

ACID is een acroniem dat staat voor Atomicity, Consistency, Isolation en Durability. Deze vier eigenschappen vormen fundamentele principes in databasebeheer en zijn ontworpen om de betrouwbaarheid van databasetransacties te waarborgen.

Het is je misschien opgevallen dat we het woord transactie gebruiken in de ACID-definitie. Je denkt misschien aan een banktransactie bij het horen van dit woord, maar in de context van databases wordt een transactie iets anders gedefinieerd.

Note
Meer Leren

Een transactie verwijst naar een reeks van één of meer databasebewerkingen die als één logische eenheid van werk worden behandeld.

Stel je voor dat je een online winkelwebsite gebruikt.
Je voegt artikelen toe aan je winkelwagen, gaat naar de kassa en doet een betaling. Dit hele proces kan worden gezien als een databasetransactie. Zo werkt het:

  1. Transactie starten: je begint met het afrekenproces;
  2. Bewerkingen:
    • Het systeem controleert of de artikelen in je winkelwagen nog op voorraad zijn;
    • Je betalingsinformatie wordt verwerkt;
    • De voorraad wordt bijgewerkt om de gekochte artikelen weer te geven;
    • Een orderrecord wordt aangemaakt in de database.
  3. Transactie bevestigen: zodra al deze stappen succesvol zijn voltooid, wordt de transactie bevestigd, wat betekent dat alle wijzigingen in de database worden opgeslagen;
  4. Rollback (indien nodig): als een stap mislukt (bijvoorbeeld als de betaling niet lukt), wordt de transactie teruggedraaid, wat betekent dat geen van de wijzigingen wordt opgeslagen. Dit zorgt ervoor dat de database in een consistente staat blijft, alsof de transactie nooit heeft plaatsgevonden.

Dit voorbeeld laat zien hoe een transactie meerdere bewerkingen groepeert tot één betrouwbaar proces.

Waarom hebben we ACID nodig?

ACID-eigenschappen zijn belangrijk in databases om drie belangrijke redenen:

  • Ten eerste garanderen ze de betrouwbaarheid van transacties door transacties als enkele, ondeelbare eenheden te behandelen, voorkomen ze gedeeltelijke updates en handhaven ze consistentie;
  • Ten tweede maken ze concurrentiebeheer mogelijk door ervoor te zorgen dat transacties onafhankelijk worden uitgevoerd, waardoor onderlinge beïnvloeding wordt voorkomen en dataconsistentie behouden blijft in omgevingen met meerdere gebruikers;
  • Tot slot waarborgen ze de duurzaamheid van gegevens door definitief vastleggen van bevestigde transacties, waardoor deze bestand zijn tegen systeemstoringen en gegevensherstel mogelijk blijft.
Note
Opmerking

Laten we een situatie met een bankrekening bekijken:

  1. Transactie 1 (T1): Je maakt $100 over van je spaarrekening naar je betaalrekening.
  2. Tegelijkertijd, Transactie 2 (T2): Je controleert online het saldo van je spaarrekening.
  3. Maar dan krijgt T1 een fout—mogelijk door een netwerkprobleem—en lukt het niet om de overboeking te voltooien.
  4. Ondertussen wordt T2 afgerond en toont het saldo van je spaarrekening, inclusief de $100 overboeking die eigenlijk nog niet heeft plaatsgevonden.

Dit schendt de Isolatie-eigenschap van ACID. Hoewel de overboeking niet is voltooid (door de fout van T1), heb je het effect ervan al gezien in je rekeningsaldo. Deze inconsistentie kan gebruikers verwarren en tot onjuiste financiële beslissingen leiden.

question mark

Waar staat ACID voor in de context van databasetransacties?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 2

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 1. Hoofdstuk 2
some-alt