DBMS-transactiestaten
In deze gids bespreken we de status van een transactie in DBMS . Een transactie in DBMS kan een van de volgende statussen hebben.
DBMS-transactiestatendiagram
Laten we deze staten één voor één bespreken.
Actieve staat
Zoals we in de introductie van DBMS-transacties hebben besproken, is een transactie een reeks bewerkingen. Als een transactie wordt uitgevoerd, wordt gezegd dat deze zich in actieve status bevindt. Het maakt niet uit welke stap wordt uitgevoerd, totdat de transactie, tenzij deze wordt uitgevoerd, in actieve status blijft.
Als een transactie wordt uitgevoerd en er een fout optreedt, hetzij een hardwarefout of een softwarefout, dan gaat de transactie in de mislukte toestand van de actieve status.
Gedeeltelijk betrokken staat
Zoals we in het bovenstaande diagram kunnen zien, gaat een transactie vanuit de actieve status naar een "gedeeltelijk gecommitteerde" status wanneer er lees- en schrijfbewerkingen in de transactie aanwezig zijn.
Een transactie bevat een aantal lees- en schrijfbewerkingen. Nadat de hele transactie met succes is uitgevoerd, gaat de transactie naar een gedeeltelijk gecommitteerde status waarin alle lees- en schrijfbewerkingen worden uitgevoerd op het hoofdgeheugen (lokaal geheugen) in plaats van op de eigenlijke database.
De reden waarom we deze status hebben, is omdat een transactie tijdens de uitvoering kan mislukken, dus als we de wijzigingen in de werkelijke database aanbrengen in plaats van in het lokale geheugen, kan de database in een inconsistente staat blijven in geval van een storing. Deze status helpt ons om de wijzigingen in de database ongedaan te maken in geval van een fout tijdens de uitvoering.
Toegewijde staat
Als een transactie de uitvoering met succes voltooit, worden alle wijzigingen in het lokale geheugen tijdens de gedeeltelijk vastgelegde status permanent opgeslagen in de database. U kunt ook in het bovenstaande diagram zien dat een transactie van gedeeltelijk vastgelegde status naar vastgelegde status gaat wanneer alles succesvol is.
Afgebroken staat
Zoals we hierboven hebben gezien, gaat de transactie in een mislukte toestand als een transactie tijdens de uitvoering mislukt. De wijzigingen die zijn aangebracht in het lokale geheugen (of buffer) worden teruggedraaid naar de vorige consistente status en de transactie wordt afgebroken vanuit de mislukte status. Raadpleeg het diagram om de interactie tussen mislukte en afgebroken status te zien.