Transacties zijn fundamentele bewerkingen waarmee we gegevens kunnen wijzigen en ophalen. Om de integriteit van een database te garanderen is het echter belangrijk dat deze transacties worden uitgevoerd op een manier die de consistentie, juistheid en betrouwbaarheid behoudt, zelfs in het geval van storingen/fouten. Dit is waar de ACID-eigenschappen een rol gaan spelen.
ACID staat voor Atomicity Consistentie Isolatie en Duurzaamheid.
Eigenschappen van zuur:

Er zijn vier eigenschappen van ACID
1. Atomiciteit
Atomiciteit betekent dat een transactie alles-of-niets is: alle handelingen slagen of er wordt geen enkele toegepast. Als een onderdeel mislukt, wordt de hele transactie teruggedraaid om de database consistent te houden.
- Verbinden : Als de transactie succesvol is, worden de wijzigingen permanent toegepast.
- Afbreken/terugdraaien : Als de transactie mislukt, worden alle wijzigingen die tijdens de transactie zijn aangebracht, genegeerd.
Voorbeeld : Beschouw de volgende transactie T bestaande uit T1 En T2 : Overboeking van 0 van rekening X ter rekening brengen EN .

Als de transactie mislukt na voltooiing van T1 maar vóór voltooiing van T2, blijft de database in een inconsistente toestand achter. Met Atomicity wordt, als een deel van de transactie mislukt, het hele proces teruggezet naar de oorspronkelijke staat en worden er geen gedeeltelijke wijzigingen aangebracht.
Consistentie in transacties betekent dat de database voor en na een transactie in een geldige staat moet blijven.
verschil tussen twee snaren Python
- Een geldige status volgt alle gedefinieerde regels en relaties (zoals externe sleutels van primaire sleutels, enz.).
- Als een transactie een van deze regels schendt, wordt deze teruggedraaid om corrupte of ongeldige gegevens te voorkomen.
- Als bij een transactie geld van de ene rekening wordt afgetrokken, maar dit niet wordt toegevoegd aan een andere (bij een overboeking), schendt dit de consistentie.
Voorbeeld : Stel dat de som van alle saldi in een banksysteem altijd constant zou moeten zijn. Vóór een overdracht is het totale saldo 0. Na de transactie moet het totale saldo 0 blijven. Als de transactie halverwege mislukt (zoals het bijwerken van de ene rekening maar niet de andere), moet het systeem de consistentie behouden door de transactie terug te draaien.
Totaal vóór T treedt op = 500 + 200 = 700 .
Totaal nadat T is opgetreden

3. Isolatie
Isolatie zorgt ervoor dat transacties onafhankelijk verlopen zonder elkaar te beïnvloeden. Wijzigingen die door één transactie worden aangebracht, zijn pas zichtbaar voor anderen nadat ze zijn vastgelegd.
Het zorgt ervoor dat het resultaat van gelijktijdige transacties hetzelfde is alsof ze achter elkaar zouden worden uitgevoerd, waardoor problemen worden voorkomen zoals:
- Vuil leest: het lezen van niet-vastgelegde gegevens
- Niet-herhaalbare luidt: gegevenswijzigingen tussen twee lezingen
- Fantoom luidt: nieuwe rijen verschijnen tijdens een transactie
Voorbeeld : Beschouw twee transacties T en T''.
- X = 500 J = 500

Uitleg:
- T wil overstappen van X naar Y.
- T leest EN (waarde: 500) trekt af van X (nieuwe X = 450) en telt op bij Y (nieuwe Y = 550).
2. Transactie T'':
- T' ' start en leest X (500) en Y (500).
- Het berekent de som: 500 + 500 = 1000.
- Ondertussen veranderen de waarden van X en Y naar respectievelijk 450 en 550.
- De juiste som moet dus 450 + 550 = 1000 zijn.
- Isolatie zorgt ervoor dat T'' geen verouderde waarden leest terwijl een andere transactie (T) nog gaande is.
- Transacties moeten onafhankelijk zijn en T'' mag pas toegang krijgen tot de uiteindelijke waarden nadat T een commit heeft gemaakt.
- Dit voorkomt inconsistente resultaten, zoals de onjuiste som berekend door T''.
4. Duurzaamheid:
Duurzaamheid zorgt ervoor dat zodra een transactie is vastgelegd, de wijzigingen permanent worden opgeslagen, zelfs als het systeem uitvalt. De gegevens worden opgeslagen in een niet-vluchtig geheugen, zodat de database kan herstellen naar de laatst vastgelegde status zonder gegevens te verliezen.
Voorbeeld : Nadat het geld succesvol is overgemaakt van rekening A naar rekening B, worden de wijzigingen op schijf opgeslagen. Zelfs als er direct na de commit een crash plaatsvindt, zullen de overdrachtsgegevens nog steeds intact zijn wanneer het systeem herstelt, waardoor duurzaamheid wordt gegarandeerd.
Hoe ACID-eigenschappen het ontwerp en de werking van DBMS beïnvloeden
De ACID-eigenschappen in hun totaliteit bieden een mechanisme om de juistheid en consistentie van een database te garanderen op een zodanige manier dat elke transactie een groep bewerkingen is die als een enkele eenheid fungeert en consistente resultaten oplevert, losstaat van andere bewerkingen en updates die het maakt, duurzaam worden opgeslagen.
ACID-eigenschappen beschermen de gegevensintegriteit van een DBMS door ervoor te zorgen dat transacties succesvol worden voltooid of geen sporen achterlaten als ze worden onderbroken. Ze voorkomen dat gedeeltelijke updates de gegevens beschadigen en zorgen ervoor dat de database alleen tussen geldige statussen overschakelt.
Java-boon
2. Gelijktijdigheidscontrole
ACID-eigenschappen bieden een solide raamwerk voor het beheren van gelijktijdige transacties. Isolatie zorgt ervoor dat transacties elkaar niet hinderen, waardoor gegevensafwijkingen zoals verloren updates, tijdelijke inconsistentie en niet-vastgelegde gegevens worden voorkomen.
3. Herstel en fouttolerantie
Duurzaamheid zorgt ervoor dat zelfs als een systeem crasht, de database zich kan herstellen naar een consistente staat. Dankzij de Atomicity- en Durability-eigenschappen blijft de database in een consistente staat als een transactie halverwege mislukt.
Eigendom | Verantwoordelijk voor het onderhouden van eigendommen |
---|---|
Atomiciteit | Transactiebeheerder |
Samenhang | Applicatie programmeur |
Isolatie | Beheerder van gelijktijdigheidscontrole |
Duurzaamheid | Herstel |
Kritieke gebruiksscenario's voor ACID in databases
In moderne toepassingen is het garanderen van de betrouwbaarheid en consistentie van gegevens cruciaal. ZUUR-eigenschappen zijn van fundamenteel belang in sectoren als:
- Bankieren : Transacties waarbij geldoverdrachten, stortingen of opnames betrokken zijn, moeten een strikte consistentie en duurzaamheid behouden om fouten en fraude te voorkomen.
- E-commerce : Om ervoor te zorgen dat de voorraadtellingen, bestellingen en klantgegevens correct en consistent worden afgehandeld, zelfs tijdens druk verkeer, is ACID-naleving vereist.
- Gezondheidszorg : De testresultaten en recepten van patiëntendossiers moeten voldoen aan strikte consistentie-integriteits- en veiligheidsnormen.