DBMS-transactiebeheer: wat zijn ACID-eigenschappen?

Inhoudsopgave:

Anonim

Wat is een databasetransactie?

Een databasetransactie is een logische verwerkingseenheid in een DBMS die een of meer databasetoegangsbewerkingen met zich meebrengt. Kortom, databasetransacties vertegenwoordigen real-world gebeurtenissen van elke onderneming.

Alle soorten databasetoegangsbewerkingen die worden vastgehouden tussen de begin- en eindtransactie-instructies, worden in DBMS als een enkele logische transactie beschouwd. Tijdens de transactie is de database inconsistent. Pas als de database is vastgelegd, wordt de status gewijzigd van de ene consistente status naar de andere.

In deze tutorial leer je:

  • Feiten over databasetransacties
  • Waarom heb je gelijktijdigheid nodig in transacties?
  • Staat van transacties
  • Wat zijn ACID-eigenschappen?
  • Soorten transacties
  • Wat is een schema?

Feiten over databasetransacties

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

Waarom heb je gelijktijdigheid nodig in 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 als:

  • Hardwarefout en systeemcrashes
  • Gelijktijdige uitvoering van dezelfde transactie, impasse of trage prestaties

Staat van transacties

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

Staat Transactietypen
Actieve staat Een transactie komt in een actieve toestand wanneer het uitvoeringsproces begint. Tijdens deze toestand kunnen lees- of schrijfbewerkingen worden uitgevoerd.
Gedeeltelijk toegewijd Een transactie gaat in de gedeeltelijk gecommitteerde staat na het einde van een transactie.
Toegewijde staat Wanneer de transactie is vastgelegd, heeft deze de uitvoering al met succes voltooid. Bovendien worden al zijn wijzigingen permanent in de database geregistreerd.
Mislukte staat Een transactie wordt als mislukt beschouwd als een van de controles mislukt of als de transactie wordt afgebroken terwijl deze zich in de actieve status bevindt.
Beëindigde staat De status van de transactie bereikt de status beëindigd wanneer bepaalde transacties die het systeem verlaten, niet opnieuw kunnen worden gestart.
State Transition Diagram voor een databasetransactie

Laten we een toestandsovergangsdiagram bestuderen dat laat zien hoe een transactie tussen deze verschillende toestanden beweegt.

  1. Zodra een transactie de uitvoering aangeeft, wordt deze actief. Het kan een LEES- of SCHRIJF-bewerking uitvoeren.
  2. Zodra de READ- en WRITE-bewerkingen zijn voltooid, worden de transacties gedeeltelijk vastgelegd.
  3. Vervolgens moeten sommige herstelprotocollen ervoor zorgen dat een systeemfout niet leidt tot het onvermogen om wijzigingen in de transactie permanent vast te leggen. Als deze controle een succes is, wordt de transactie gecommitteerd en treedt deze in de gecommitteerde staat.
  4. Als de controle mislukt is, gaat de transactie naar de status Mislukt.
  5. Als de transactie wordt afgebroken terwijl deze zich in de actieve status bevindt, gaat deze naar de status mislukt. De transactie moet worden teruggedraaid om het effect van de schrijfbewerkingen op de database ongedaan te maken.
  6. De status beëindigd verwijst naar de transactie die het systeem verlaat.

Wat zijn ACID-eigenschappen?

ACID-eigenschappen worden gebruikt voor het handhaven van de integriteit van de database tijdens transactieverwerking. ACID in DBMS staat voor A tomiciteit, C onsistentie, I solation en D urability.

  • Atomiciteit: een transactie is een enkele bedrijfseenheid. U voert het geheel uit of u voert het helemaal niet uit. Er kan geen gedeeltelijke uitvoering zijn.
  • Consistentie: zodra de transactie is uitgevoerd, moet deze van de ene consistente staat naar de andere gaan.
  • Isolatie: de transactie moet geïsoleerd worden uitgevoerd van andere transacties (geen vergrendelingen). Tijdens de uitvoering van gelijktijdige transacties mogen tussentijdse transactieresultaten van gelijktijdig uitgevoerde transacties niet aan elkaar ter beschikking worden gesteld. (Niveau 0,1,2,3)
  • Duurzaamheid: · Na succesvolle afronding van een transactie, zouden de wijzigingen in de database moeten blijven bestaan. Zelfs in het geval van systeemstoringen.

ACID-eigenschap in DBMS met voorbeeld:

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

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

Transactie 1 maakt $ 50 over 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 zal worden uitgevoerd vóór Transactie 2 of vice versa. Ongeacht de volgorde moet het resultaat zijn alsof de transacties serieel achter elkaar plaatsvinden.

Soorten transacties

Gebaseerd op toepassingsgebieden

  • Niet-gedistribueerd vs. gedistribueerd
  • Transacties compenseren
  • Transacties Timing
  • Online versus batch

Gebaseerd op acties

  • Twee stappen
  • Beperkt
  • Actiemodel

Gebaseerd op structuur

  • Platte of eenvoudige transacties: het bestaat 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 de meerdere parallelle transacties maakt en deze een voor een 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 output van een andere beïnvloeden.

Voorbeeld

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

Als Transactie 2 wordt uitgevoerd vóór Transactie 1, wordt verouderde informatie over het aantal producten gelezen. Daarom zijn planningen vereist.

Parallelle uitvoering in een database is onvermijdelijk. Maar parallelle uitvoering is toegestaan ​​als er een equivalentierelatie is tussen de gelijktijdig uitgevoerde transacties. Deze gelijkwaardigheid is van 3 typen.

RESULTAAT EQUIVALENTIE:

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

Bekijk gelijkwaardigheid

View Equivalentie treedt op wanneer de transactie in het schema een vergelijkbare actie uitvoert. De ene transactie voegt bijvoorbeeld 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, aangezien de volgorde van uitvoering de uitvoer beïnvloedt.

Wat is serialiseerbaarheid?

Serialiseerbaarheid is het proces van het zoeken naar een gelijktijdige planning waarvan de output gelijk is aan een serieel schema waarbij de transactie na elkaar wordt uitgevoerd. Afhankelijk van het type schema's zijn er twee soorten serialiseerbaarheid:

  • Conflict
  • Visie

Overzicht:

  • Transactiebeheer is een logische verwerkingseenheid in een DBMS die een of meer databasetoegangsbewerkingen met zich meebrengt
  • Het is een transactie is een programma-eenheid waarvan de uitvoering al dan niet de inhoud van een database kan veranderen.
  • Het niet beheren van gelijktijdige toegang kan leiden tot problemen zoals hardwarestoringen en systeemcrashes.
  • Actief, gedeeltelijk toegewijd, toegewijd, mislukt en beëindigd zijn belangrijke transactiestatussen.
  • De volledige vorm van ACID-eigenschappen in DBMS is Atomiciteit, Consistentie, Isolatie en Duurzaamheid
  • Drie typen DBMS-transacties zijn gebaseerd op toepassingsgebieden, actie en structuur.
  • Een schema is een proces dat een enkele groep van de meerdere parallelle transacties maakt en deze een voor een uitvoert.
  • Serialiseerbaarheid is het proces van het zoeken naar een gelijktijdige planning waarvan de output gelijk is aan een serieel schema waarin transacties na elkaar worden uitgevoerd.