Transaktionsstyring i DBMS: Hvad er ACID-egenskaber?
Hvad er en databasetransaktion?
A Databasetransaktion er en logisk behandlingsenhed i et DBMS, som indebærer en eller flere databaseadgangsoperationer. I en nøddeskal repræsenterer databasetransaktioner begivenheder i den virkelige verden i enhver virksomhed.
Alle typer af databaseadgangsoperationer, der holdes mellem start- og sluttransaktionsudsagn, betragtes som en enkelt logisk transaktion i DBMS. Under transaktionen er databasen inkonsekvent. Først når databasen er begået, ændres tilstanden fra en konsistent tilstand til en anden.

Fakta om databasetransaktioner
- En transaktion er en programenhed, hvis udførelse kan ændre indholdet af en database eller ikke.
- Transaktionskonceptet i DBMS udføres som en enkelt enhed.
- Hvis databaseoperationerne ikke opdaterer databasen, men kun henter data, kaldes denne type transaktion en skrivebeskyttet transaktion.
- En vellykket transaktion kan ændre databasen fra én KONSISTENT TILSTAND til en anden
- DBMS-transaktioner skal være atomare, konsistente, isolerede og holdbare
- Hvis databasen var i en inkonsistent tilstand før en transaktion, ville den forblive i den inkonsistente tilstand efter transaktionen.
Hvorfor har du brug for samtidighed i transaktioner?
En database er en delt ressource, der tilgås. Det bruges af mange brugere og processer samtidigt. For eksempel banksystemet, jernbane- og flyreservationssystemer, aktiemarkedsovervågning, supermarkedsbeholdning og kasser mv.
Hvis du ikke administrerer samtidig adgang, kan det skabe problemer som:
- Hardwarefejl og systemnedbrud
- Samtidig udførelse af samme transaktion, dødvande, eller langsom ydeevne
Transaktionstilstande
De forskellige tilstande af et transaktionskoncept i DBMS er angivet nedenfor:
Tilstand | Transaktionstyper |
---|---|
Aktiv tilstand | En transaktion går ind i en aktiv tilstand, når eksekveringsprocessen begynder. Under denne tilstand kan læse- eller skriveoperationer udføres. |
Delvist engageret | En transaktion går i den delvist forpligtede tilstand efter afslutningen af en transaktion. |
Engageret stat | Når transaktionen er forpligtet til staten, har den allerede gennemført sin eksekvering med succes. Desuden bliver alle dens ændringer registreret i databasen permanent. |
Mislykket tilstand | En transaktion betragtes som mislykket, når en af kontrollerne mislykkes, eller hvis transaktionen afbrydes, mens den er i aktiv tilstand. |
Opsagt stat | Transaktionstilstand når afsluttet tilstand, når visse transaktioner, der forlader systemet, ikke kan genstartes. |
Lad os studere en tilstandsovergangsdiagram der fremhæver, hvordan en transaktion bevæger sig mellem disse forskellige stater.
- Når en transaktion angiver udførelse, bliver den aktiv. Det kan udstede LÆS- eller SKRIV-funktion.
- Når LÆS- og SKRIV-operationerne er afsluttet, bliver transaktionerne delvist forpligtede.
- Dernæst skal nogle gendannelsesprotokoller sikre, at en systemfejl ikke vil resultere i manglende evne til at registrere ændringer i transaktionen permanent. Hvis denne kontrol er en succes, forpligtes transaktionen og går ind i den forpligtede tilstand.
- Hvis kontrollen er en fejl, går transaktionen til tilstanden Mislykket.
- Hvis transaktionen afbrydes, mens den er i aktiv tilstand, går den til mislykket tilstand. Transaktionen skal rulles tilbage for at fortryde effekten af dens skriveoperationer på databasen.
- Den afsluttede tilstand refererer til transaktionen, der forlader systemet.
Hvad er ACID-egenskaber?
SYRE egenskaber bruges til at opretholde databasens integritet under transaktionsbehandling. ACID i DBMS står for Atomicitet, Cvedholdenhed, Isolation, og Dholdbarhed.
- Atomisby: En transaktion er en enkelt operationsenhed. Du udfører det enten helt eller slet ikke. Der kan ikke være tale om delvis udførelse.
- Konsistens: Når transaktionen er udført, bør den flytte fra en konsistent tilstand til en anden.
- Isolering: Transaktionen skal udføres isoleret fra andre transaktioner (ingen låse). Under samtidig udførelse af transaktioner bør mellemliggende transaktionsresultater fra samtidig udførte transaktioner ikke gøres tilgængelige for hinanden. (Niveau 0,1,2,3)
- Holdbarhed:· Efter vellykket gennemførelse af en transaktion, bør ændringerne i databasen fortsætte. Selv i tilfælde af systemfejl.
ACID Property i DBMS med eksempel
Nedenfor er et eksempel på ACID-egenskaber i DBMS:
Transaction 1: Begin X=X+50, Y = Y-50 END Transaction 2: Begin X=1.1*X, Y=1.1*Y END
Transaktion 1 er at overføre $50 fra konto X til konto Y.
Transaktion 2 krediterer hver konto med en rentebetaling på 10%.
Hvis begge transaktioner indsendes sammen, er der ingen garanti for, at Transaktion 1 vil blive gennemført før Transaktion 2 eller omvendt. Uanset rækkefølgen skal resultatet være, som om transaktionerne foregår serielt efter hinanden.
Typer af transaktioner
Baseret på anvendelsesområder
- Ikke-fordelt vs. distribueret
- Kompenserende transaktioner
- Timing af transaktioner
- On-line vs. batch
Baseret på handlinger
- To-trin
- begrænset
- Handlingsmodel
Baseret på struktur
- Flade eller simple transaktioner: Den består af en sekvens af primitive operationer, der udføres mellem en start- og slutoperation.
- Indlejrede transaktioner: En transaktion, der indeholder andre transaktioner.
- Workflow
Hvad er et skema?
Et skema er en proces, der skaber en enkelt gruppe af de flere parallelle transaktioner og udfører dem én efter én. Det bør bevare den rækkefølge, som instruktionerne vises i i hver transaktion. Hvis to transaktioner udføres på samme tid, kan resultatet af en transaktion påvirke output fra den anden.
Eksempel
Initial Product Quantity is 10 Transaction 1: Update Product Quantity to 50 Transaction 2: Read Product Quantity
Hvis Transaktion 2 udføres før Transaktion 1, vil forældede oplysninger om produktmængden blive læst. Derfor er tidsplaner påkrævet.
Parallel udførelse i en database er uundgåelig. Men parallel eksekvering er tilladt, når der er en ækvivalensrelation mellem de samtidigt udførende transaktioner. Denne ækvivalens er af 3 typer.
RESULTATÆKVIVALENS:
Hvis to skemaer viser det samme resultat efter udførelse, kaldes det resultatækvivalent skema. De kan tilbyde det samme resultat for en vis værdi og forskellige resultater for et andet sæt værdier. For eksempel opdaterer en transaktion produktmængden, mens en anden opdaterer kundeoplysninger.
Se ækvivalens
Vis ækvivalens opstår, når transaktionen i både tidsplanen udfører en lignende handling. Eksempelvis indsætter en transaktion produktdetaljer i produkttabellen, mens en anden transaktion indsætter produktdetaljer i arkivtabellen. Transaktionen er den samme, men tabellerne er forskellige.
KONFLIKT ækvivalens
I dette tilfælde opdaterer/viser to transaktioner det samme datasæt. Der er en konflikt mellem transaktioner, da rækkefølgen af udførelse vil påvirke outputtet.
Hvad er serialiseringsevne?
Serialiserbarhed er processen med at søge efter en samtidig tidsplan, hvis output er lig med en seriel tidsplan, hvor transaktioner udføres efter hinanden. Afhængigt af typen af tidsplaner er der to typer serialiserbarhed:
- Konflikt
- Specifikation
Resumé
- Transaktionsstyring er en logisk behandlingsenhed i et DBMS, som indebærer en eller flere databaseadgangsoperationer
- Det er en transaktion er en programenhed, hvis udførelse kan eller ikke kan ændre indholdet af en database.
- Hvis du ikke administrerer samtidig adgang, kan det skabe problemer som hardwarefejl og systemnedbrud.
- Aktiv, Delvist forpligtet, Forpligtet, Mislykket og Afsluttet er vigtige transaktionstilstande.
- Den fulde form af ACID-egenskaber i DBMS is Atomicity, konsistens, isolation og holdbarhed
- Tre DBMS-transaktionstyper er Base on Application Areas, Action, & Structure.
- Et skema er en proces, der skaber en enkelt gruppe af de flere parallelle transaktioner og udfører dem én efter én.
- Serialiserbarhed er processen med at søge efter en samtidig tidsplan, hvis output er lig med en seriel tidsplan, hvor transaktioner udføres efter hinanden.