Hvad er en databasetransaktion?
En databasetransaktion er en logisk behandlingsenhed i et DBMS, som indebærer en eller flere databaseadgangsoperationer. Kort sagt repræsenterer databasetransaktioner begivenheder i virkeligheden i enhver virksomhed.
Alle typer databaseadgangsoperationer, der holdes mellem begyndelsen og slutningen af transaktionssætningerne, 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.
I denne vejledning lærer du:
- Fakta om databasetransaktioner
- Hvorfor har du brug for samtidighed i transaktioner?
- Transaktionsstater
- Hvad er ACID-egenskaber?
- Typer af transaktioner
- Hvad er en tidsplan?
Fakta om databasetransaktioner
- En transaktion er en programenhed, hvis udførelse måske eller ikke kan ændre indholdet af en database.
- Transaktionskonceptet i DBMS udføres som en enkelt enhed.
- Hvis databasefunktionerne ikke opdaterer databasen, men kun henter data, kaldes denne type transaktion en skrivebeskyttet transaktion.
- En vellykket transaktion kan ændre databasen fra en KONSISTENT STAT til en anden
- DBMS-transaktioner skal være atomare, konsistente, isolerede og holdbare
- Hvis databasen var i en inkonsekvent tilstand før en transaktion, ville den forblive i den inkonsekvente tilstand efter transaktionen.
Hvorfor har du brug for samtidighed i transaktioner?
En database er adgang til en delt ressource. Det bruges af mange brugere og processer samtidigt. For eksempel banksystemer, jernbane- og luftreservationssystemer, aktiemarkedsovervågning, supermarkedslager og kasser osv.
Ikke at administrere samtidig adgang kan skabe problemer som:
- Hardwarefejl og systemnedbrud
- Samtidig udførelse af den samme transaktion, deadlock eller langsom ydeevne
Transaktionsstater
De forskellige tilstande for et transaktionskoncept i DBMS er anført nedenfor:
Stat | Transaktionstyper |
Aktiv tilstand | En transaktion indgår i en aktiv tilstand, når udførelsesprocessen begynder. I denne tilstand kan læse- eller skriveoperationer udføres. |
Delvist forpligtet | En transaktion går ind i den delvist forpligtede tilstand efter afslutningen af en transaktion. |
Forpligtet stat | Når transaktionen er forpligtet til at angive, har den allerede gennemført sin udførelse med succes. Desuden registreres alle dens ændringer permanent i databasen. |
Mislykket stat | En transaktion betragtes som mislykket, når en af kontrollerne mislykkes, eller hvis transaktionen afbrydes, mens den er i den aktive tilstand. |
Afsluttet stat | Transaktionens tilstand når den afsluttede tilstand, når visse transaktioner, der forlader systemet, ikke kan genstartes. |

Lad os studere et tilstandsovergangsdiagram, der fremhæver, hvordan en transaktion bevæger sig mellem disse forskellige tilstande.
- Når en transaktion angiver udførelse, bliver den aktiv. Det kan udstede LÆS eller SKRIFT.
- Når LÆS og SKRIV-operationerne er afsluttet, bliver transaktionerne delvist forpligtet.
- Dernæst skal nogle gendannelsesprotokoller sikre, at en systemfejl ikke resulterer i manglende evne til at registrere ændringer i transaktionen permanent. Hvis denne kontrol er en succes, forpligter transaktionen sig til den forpligtede tilstand.
- Hvis kontrollen mislykkes, går transaktionen til tilstanden Mislykket.
- Hvis transaktionen afbrydes, mens den er i aktiv tilstand, går den til den mislykkede tilstand. Transaktionen skal rulles tilbage for at fortryde effekten af dens skriveoperationer på databasen.
- Den afsluttede tilstand henviser til den transaktion, der forlader systemet.
Hvad er ACID-egenskaber?
ACID-egenskaber bruges til at opretholde databasens integritet under transaktionsbehandling. ACID i DBMS står for A tomicity, C onsistency, I solation og D urability.
- Atomicitet: En transaktion er en enkelt enhed. Enten udfører du det helt eller ikke udfører det overhovedet. Der kan ikke være delvis udførelse.
- Konsistens: Når transaktionen er udført, skal den flytte fra en konsistent tilstand til en anden.
- Isolering: Transaktion skal udføres isoleret fra andre transaktioner (ingen låse). Under samtidig transaktionsudførelse bør mellemliggende transaktionsresultater fra samtidigt udførte transaktioner ikke gøres tilgængelige for hinanden. (Niveau 0,1,2,3)
- Holdbarhed: · Efter en vellykket afslutning af en transaktion skal ændringerne i databasen fortsætte. Selv i tilfælde af systemfejl.
ACID-egenskab i DBMS med eksempel:
Nedenfor er et eksempel på ACID-egenskab i DBMS:
Transaction 1: Begin X=X+50, Y = Y-50 ENDTransaction 2: Begin X=1.1*X, Y=1.1*Y END
Transaktion 1 overfører $ 50 fra konto X til konto Y.
Transaktion 2 krediterer hver konto en 10% rentebetaling.
Hvis begge transaktioner sendes sammen, er der ingen garanti for, at Transaktion 1 udføres før Transaktion 2 eller omvendt. Uanset ordren skal resultatet være, som om transaktionerne finder sted serien efter hinanden.
Typer af transaktioner
Baseret på applikationsområder
- Ikke-distribueret vs. distribueret
- Kompenserende transaktioner
- Transaktioner Timing
- On-line vs. batch
Baseret på handlinger
- To-trins
- Begrænset
- Handlingsmodel
Baseret på struktur
- Flade eller enkle transaktioner: Den består af en række primitive operationer, der udføres mellem en start- og slutoperation.
- Indlejrede transaktioner: En transaktion, der indeholder andre transaktioner.
- Workflow
Hvad er en tidsplan?
En tidsplan er en proces, der opretter en enkelt gruppe af de flere parallelle transaktioner og udfører dem en efter en. Det skal bevare den rækkefølge, som instruktionerne vises i hver transaktion. Hvis to transaktioner udføres på samme tid, kan resultatet af en transaktion påvirke output fra en anden.
Eksempel
Initial Product Quantity is 10Transaction 1: Update Product Quantity to 50Transaction 2: Read Product Quantity
Hvis Transaktion 2 udføres før Transaktion 1, læses forældede oplysninger om produktmængden. Derfor er tidsplaner påkrævet.
Parallel udførelse i en database er uundgåelig. Men parallel udførelse er tilladt, når der er en ækvivalensrelation mellem de samtidigt udførte transaktioner. Denne ækvivalens er af 3 typer.
RESULTATEKVIVALENSE:
Hvis to tidsplaner viser det samme resultat efter udførelse, kaldes det resultatækvivalent tidsplan. De kan tilbyde det samme resultat for en værdi og forskellige resultater for et andet sæt værdier. For eksempel opdaterer en transaktion produktmængden, mens andre opdaterer kundeoplysninger.
Se ækvivalens
Vis ækvivalens opstår, når transaktionen i begge tidsplaner udfører en lignende handling. Eksempel: en transaktion indsætter produktoplysninger i produkttabellen, mens en anden transaktion indsætter produktoplysninger i arkivtabellen. Transaktionen er den samme, men tabellerne er forskellige.
KONFLIKT Ækvivalens
I dette tilfælde opdaterer / ser to transaktioner det samme datasæt. Der er en konflikt mellem transaktionen, da rækkefølgen af udførelsen vil påvirke output.
Hvad er Serializability?
Serializability er processen med at søge efter en samtidig tidsplan, der output er lig med en seriel tidsplan, hvor transaktion ae udføres efter hinanden. Afhængigt af typen af tidsplaner er der to typer serierbarhed:
- Konflikt
- Udsigt
Resumé:
- Transaktionsstyring er en logisk behandlingsenhed i et DBMS, der indebærer en eller flere databaseadgangsoperationer
- Det er en transaktion, der er en programenhed, hvis udførelse måske eller ikke kan ændre indholdet af en database.
- Ikke styring af samtidig adgang kan skabe problemer som hardwarefejl og systemnedbrud.
- Aktiv, delvist forpligtet, forpligtet, mislykket og afslut er vigtige transaktionstilstande.
- Den fulde form for ACID-egenskaber i DBMS er Atomicitet, Konsistens, Isolering og Holdbarhed
- Tre DBMS-transaktionstyper er baserede på applikationsområder, handling og struktur.
- En tidsplan er en proces, der opretter en enkelt gruppe af de flere parallelle transaktioner og udfører dem en efter en.
- Serializability er processen med at søge efter en samtidig tidsplan, hvis output er lig med en seriel tidsplan, hvor transaktioner udføres efter hinanden.