Transactiebeheer in DBMS: wat zijn ACID-eigenschappen?

Wat is een databasetransactie?

A Database-transactie is een logische verwerkingseenheid in een DBMS die een of meer databasetoegangsbewerkingen omvat. In een notendop vertegenwoordigen databasetransacties echte gebeurtenissen van elke onderneming.

Alle typen databasetoegangsbewerkingen die worden uitgevoerd tussen de begin- en eindtransactie-statements worden beschouwd als één logische transactie in DBMS. Tijdens de transactie is de database inconsistent. Pas nadat de database is vastgelegd, verandert de status van de ene consistente status naar de andere.

Database-transactie
Database-transactie

Feiten over databasetransacties

  • Een transactie is een programma-eenheid waarvan de uitvoering de inhoud van een database wel of niet kan veranderen.
  • Het transactieconcept in DBMS wordt als één eenheid uitgevoerd.
  • Als de databasebewerkingen de database niet bijwerken, maar alleen gegevens ophalen, wordt dit type transactie een alleen-lezentransactie genoemd.
  • Een succesvolle transactie kan de database van de ene CONSISTENTE STAAT naar de andere veranderen
  • DBMS-transacties moeten atomair, consistent, geïsoleerd en duurzaam zijn
  • Als de database zich vóór een transactie in een inconsistente toestand zou bevinden, zou deze na de transactie in de inconsistente toestand blijven.

Waarom heb je gelijktijdigheid nodig bij transacties?

Een database is een gedeelde bron waartoe toegang wordt verkregen. Het wordt door veel gebruikers en processen tegelijkertijd gebruikt. Bijvoorbeeld het banksysteem, spoorweg- en luchtreserveringssystemen, beursmonitoring, supermarktinventaris en kassa's, enz.

Het niet beheren van gelijktijdige toegang kan problemen veroorzaken zoals:

  • Hardwarefouten en systeemcrashes
  • Gelijktijdige uitvoering van dezelfde transactie, impasseof trage prestaties

Staten van transacties

De verschillende statussen van een transactieconcept in DBMS worden hieronder opgesomd:

Land Transactietypen
Actieve staat Een transactie komt in een actieve staat wanneer het uitvoeringsproces begint. Tijdens deze staat kunnen lees- of schrijfbewerkingen worden uitgevoerd.
Gedeeltelijk toegewijd Een transactie gaat na het einde van een transactie over in de gedeeltelijk vastgelegde status.
Toegewijde staat Wanneer de transactie wordt vastgelegd, is de uitvoering ervan al succesvol voltooid. Bovendien worden alle wijzigingen permanent in de database vastgelegd.
Mislukte staat Een transactie wordt als mislukt beschouwd als een van de controles mislukt of als de transactie wordt afgebroken terwijl deze nog actief is.
Beëindigde staat De transactiestatus bereikt de beëindigde status wanneer bepaalde transacties die het systeem verlaten, niet opnieuw kunnen worden gestart.
Staatsovergangsdiagram
Statusovergangsdiagram voor een databasetransactie

Laten we A bestuderen toestandsovergangsdiagram dat benadrukt hoe een transactie zich tussen deze verschillende staten beweegt.

  1. Zodra een transactie uitvoering aangeeft, wordt deze actief. Deze kan een READ- of WRITE-bewerking uitvoeren.
  2. Zodra de READ- en WRITE-bewerkingen zijn voltooid, krijgen de transacties de status 'gedeeltelijk vastgelegd'.
  3. Vervolgens moeten sommige herstelprotocollen ervoor zorgen dat een systeemfout niet zal resulteren in het onvermogen om wijzigingen in de transactie permanent vast te leggen. Als deze controle succesvol is, wordt de transactie vastgelegd en komt deze in de vastgelegde staat.
  4. Als de controle mislukt, krijgt de transactie de status Mislukt.
  5. Als de transactie wordt afgebroken terwijl deze zich in de actieve status bevindt, gaat deze naar de mislukte status. De transactie moet worden teruggedraaid om het effect van de schrijfbewerkingen op de database ongedaan te maken.
  6. De beëindigde status verwijst naar de transactie die het systeem verlaat.

Wat zijn ZUUR-eigenschappen?

ACID-eigenschappen worden gebruikt om de integriteit van de database te behouden tijdens de transactieverwerking. ACID in DBMS staat voor Atomiciteit, Caanhoudendheid, Isolatie, en Durabiliteit.

  • Atomijs: Een transactie is een enkele eenheid van operatie. U voert het volledig uit of voert het helemaal niet uit. Er kan geen gedeeltelijke uitvoering zijn.
  • Consistentie: Zodra de transactie is uitgevoerd, moet deze van de ene consistente toestand naar de andere gaan.
  • Isolatie: Transacties dienen los van andere transacties te worden uitgevoerd (geen Locks). Tijdens gelijktijdige transactie-uitvoering mogen tussenliggende transactieresultaten van gelijktijdig uitgevoerde transacties niet aan elkaar beschikbaar worden gesteld. (Niveau 0,1,2,3)
  • Duurzaam:· Na succesvolle voltooiing van een transactie moeten de wijzigingen in de database blijven bestaan. Zelfs bij systeemstoringen.

ACID Eigenschap in DBMS met voorbeeld

Hieronder ziet u een voorbeeld van de ACID-eigenschap in DBMS:

Transaction 1: Begin X=X+50, Y = Y-50 END
Transaction 2: Begin X=1.1*X, Y=1.1*Y END

Transactie 1 is het overboeken van $ 50 van rekening X naar rekening Y.

Transactie 2 crediteert elke rekening met een rentebetaling van 10%.

Als beide transacties samen worden ingediend, is er geen garantie dat Transactie 1 vóór Transactie 2 zal worden uitgevoerd of omgekeerd. Ongeacht de volgorde moet het resultaat zijn alsof de transacties serieel na elkaar plaatsvinden.

Soorten transacties

Gebaseerd op toepassingsgebieden

  • Niet-gedistribueerd versus gedistribueerd
  • Compenserende transacties
  • Transactietiming
  • Online versus batch

Gebaseerd op acties

  • Twee stappen
  • Beperkt
  • Actiemodel

Gebaseerd op structuur

  • Vlakke of eenvoudige transacties: Deze bestaan ​​uit een reeks primitieve bewerkingen die worden uitgevoerd tussen een begin- en eindbewerking.
  • Geneste transacties: Een transactie die andere transacties bevat.
  • Workflow

Wat is een schema?

Een schema is een proces dat een enkele groep van meerdere parallelle transacties creëert en deze één voor één uitvoert. Het moet de volgorde behouden waarin de instructies in elke transactie verschijnen. Als twee transacties tegelijkertijd worden uitgevoerd, kan het resultaat van de ene transactie de uitkomst van de andere beïnvloeden.

Voorbeeld

Initial Product Quantity is 10
Transaction 1: Update Product Quantity to 50
Transaction 2: Read Product Quantity

Als Transactie 2 vóór Transactie 1 wordt uitgevoerd, wordt verouderde informatie over de producthoeveelheid gelezen. Er zijn dus schema’s nodig.

Parallelle uitvoering in een database is onvermijdelijk. Maar parallelle uitvoering is toegestaan ​​wanneer er een equivalentierelatie is tussen de gelijktijdig uitvoerende transacties. Deze equivalentie is van 3 typen.

RESULTAAT GELIJKWAARDIGHEID:

Als twee schema's hetzelfde resultaat weergeven na uitvoering, wordt dit een result equivalent schema genoemd. Ze kunnen hetzelfde resultaat bieden voor een bepaalde waarde en verschillende resultaten voor een andere set waarden. Bijvoorbeeld, één transactie werkt de producthoeveelheid bij, terwijl een andere de klantgegevens bijwerkt.

Bekijk gelijkwaardigheid

Weergave-equivalentie treedt op wanneer de transactie in beide schema's een vergelijkbare actie uitvoert. Bijvoorbeeld, één transactie voegt productdetails in de producttabel in, terwijl een andere transactie productdetails in de archieftabel invoegt. De transactie is hetzelfde, maar de tabellen zijn verschillend.

CONFLICT Gelijkwaardigheid

In dit geval updaten/bekijken twee transacties dezelfde set gegevens. Er is een conflict tussen de transacties, omdat de volgorde van uitvoering de uitvoer beïnvloedt.

Wat is serialiseerbaarheid?

Serialiseerbaarheid is het proces van zoeken naar een gelijktijdig schema waarvan de output gelijk is aan een serieel schema waarbij transacties de een na de ander worden uitgevoerd. Afhankelijk van het type schema's zijn er twee soorten serialiseerbaarheid:

  • Conflict
  • Bekijk

Samenvatting

  • Transactiebeheer is een logische verwerkingseenheid in een DBMS die een of meer databasetoegangsbewerkingen omvat
  • Het is een transactie, een programma-eenheid waarvan de uitvoering de inhoud van een database wel of niet kan veranderen.
  • Het niet beheren van gelijktijdige toegang kan problemen veroorzaken zoals hardwarestoringen en systeemcrashes.
  • Actief, gedeeltelijk vastgelegd, vastgelegd, mislukt en beëindigd zijn belangrijke transactiestatussen.
  • De volledige vorm van ACID Properties in dbms is Atomiciteit, consistentie, isolatie en duurzaamheid
  • Drie typen DBMS-transacties zijn Basis op toepassingsgebieden, Actie en Structuur.
  • Een schema is een proces dat een enkele groep van meerdere parallelle transacties creëert en deze één voor één uitvoert.
  • Serialiseerbaarheid is het proces van zoeken naar een gelijktijdig schema waarvan de output gelijk is aan een serieel schema waarbij transacties na elkaar worden uitgevoerd.