Transaksjonshåndtering i DBMS: Hva er ACID-egenskaper?

Hva er en databasetransaksjon?

A Databasetransaksjon er en logisk enhet for behandling i et DBMS som innebærer en eller flere databasetilgangsoperasjoner. I et nøtteskall representerer databasetransaksjoner virkelige hendelser for enhver bedrift.

Alle typer databasetilgangsoperasjoner som holdes mellom start- og slutttransaksjonssetningene, betraktes som en enkelt logisk transaksjon i DBMS. Under transaksjonen er databasen inkonsekvent. Først når databasen er forpliktet, endres tilstanden fra en konsistent tilstand til en annen.

Databasetransaksjon
Databasetransaksjon

Fakta om databasetransaksjoner

  • En transaksjon er en programenhet hvis utførelse kan endre innholdet i en database eller ikke.
  • Transaksjonskonseptet i DBMS utføres som en enkelt enhet.
  • Hvis databaseoperasjonene ikke oppdaterer databasen, men bare henter data, kalles denne typen transaksjoner en skrivebeskyttet transaksjon.
  • En vellykket transaksjon kan endre databasen fra én KONSISTENT STATE til en annen
  • DBMS-transaksjoner må være atomære, konsistente, isolerte og varige
  • Hvis databasen var i en inkonsistent tilstand før en transaksjon, ville den forbli i den inkonsistente tilstanden etter transaksjonen.

Hvorfor trenger du samtidighet i transaksjoner?

En database er en delt ressurs man får tilgang til. Den brukes av mange brukere og prosesser samtidig. For eksempel banksystemet, jernbane- og flyreservasjonssystemer, børsovervåking, supermarkedsbeholdning og kasser, etc.

Å ikke administrere samtidig tilgang kan skape problemer som:

  • Maskinvarefeil og systemkrasj
  • Samtidig gjennomføring av samme transaksjon, vranglås, eller treg ytelse

Transaksjonstilstander

De ulike tilstandene til et transaksjonskonsept i DBMS er oppført nedenfor:

Tilstand Transaksjonstyper
Aktiv tilstand En transaksjon går inn i en aktiv tilstand når utførelsesprosessen starter. Under denne tilstanden kan lese- eller skriveoperasjoner utføres.
Delvis engasjert En transaksjon går inn i delvis forpliktet tilstand etter slutten av en transaksjon.
Engasjert stat Når transaksjonen er forpliktet til staten, har den allerede fullført sin utførelse vellykket. Dessuten blir alle endringene registrert i databasen permanent.
Mislykket tilstand En transaksjon anses som mislykket når en av kontrollene mislykkes eller hvis transaksjonen avbrytes mens den er i aktiv tilstand.
Avsluttet stat Transaksjonstilstand når avsluttet tilstand når visse transaksjoner som forlater systemet ikke kan startes på nytt.
Overgangsdiagram for tilstand
Tilstandsovergangsdiagram for en databasetransaksjon

La oss studere en tilstandsovergangsdiagram som fremhever hvordan en transaksjon beveger seg mellom disse ulike statene.

  1. Når en transaksjon angir utførelse, blir den aktiv. Det kan utstede RESE- eller SKRIV-operasjon.
  2. Når READ- og WRITE-operasjonene er fullført, blir transaksjonene delvis forpliktet tilstand.
  3. Deretter må noen gjenopprettingsprotokoller sikre at en systemfeil ikke vil resultere i manglende evne til å registrere endringer i transaksjonen permanent. Hvis denne sjekken er en suksess, forplikter transaksjonen og går inn i forpliktet tilstand.
  4. Hvis sjekken er en mislykket, går transaksjonen til mislykket tilstand.
  5. Hvis transaksjonen avbrytes mens den er i aktiv tilstand, går den til mislykket tilstand. Transaksjonen bør rulles tilbake for å angre effekten av skriveoperasjonene på databasen.
  6. Den avsluttede tilstanden refererer til transaksjonen som forlater systemet.

Hva er ACID-egenskaper?

ACID egenskaper brukes til å opprettholde integriteten til databasen under transaksjonsbehandling. ACID i DBMS står for Atomisme, Cpågående, Isolation, og Durabilitet.

  • Atomicity: En transaksjon er en enkelt operasjonsenhet. Enten utfører du det helt eller ikke i det hele tatt. Det kan ikke være delvis utførelse.
  • Konsistens: Når transaksjonen er utført, bør den gå fra en konsistent tilstand til en annen.
  • Isolasjon: Transaksjonen skal utføres isolert fra andre transaksjoner (ingen låser). Under samtidig utførelse av transaksjoner bør ikke mellomliggende transaksjonsresultater fra samtidig utførte transaksjoner gjøres tilgjengelige for hverandre. (Nivå 0,1,2,3)
  • Varighet:· Etter vellykket gjennomføring av en transaksjon, bør endringene i databasen vedvare. Selv ved systemfeil.

ACID Property i DBMS med eksempel

Nedenfor er et eksempel på ACID-egenskap i DBMS:

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

Transaksjon 1 er overføring av $50 fra konto X til konto Y.

Transaksjon 2 krediterer hver konto med en rentebetaling på 10 %.

Hvis begge transaksjonene sendes sammen, er det ingen garanti for at Transaksjon 1 vil utføres før Transaksjon 2 eller omvendt. Uavhengig av rekkefølgen skal resultatet være som om transaksjonene skjer i serie etter hverandre.

Typer av transaksjoner

Basert på bruksområder

  • Ikke-distribuert vs. distribuert
  • Kompenserende transaksjoner
  • Transaksjonstidspunkt
  • On-line vs. batch

Basert på handlinger

  • To steg
  • begrenset
  • Handlingsmodell

Basert på struktur

  • Flate eller enkle transaksjoner: Den består av en sekvens av primitive operasjoner utført mellom en start- og sluttoperasjon.
  • Nestede transaksjoner: En transaksjon som inneholder andre transaksjoner.
  • Arbeidsflyt

Hva er en tidsplan?

En tidsplan er en prosess som oppretter en enkelt gruppe av flere parallelle transaksjoner og utfører dem én etter én. Det bør bevare rekkefølgen instruksjonene vises i i hver transaksjon. Hvis to transaksjoner utføres samtidig, kan resultatet av en transaksjon påvirke utgangen til den andre.

Eksempel

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

Hvis Transaksjon 2 utføres før Transaksjon 1, vil utdatert informasjon om produktmengden bli lest. Derfor kreves tidsplaner.

Parallell kjøring i en database er uunngåelig. Men parallell utførelse er tillatt når det er en ekvivalensrelasjon mellom de samtidig utførende transaksjonene. Denne ekvivalensen er av 3 typer.

RESULTATEKVIVALENS:

Hvis to tidsplaner viser det samme resultatet etter utførelse, kalles det resultatekvivalent tidsplan. De kan tilby det samme resultatet for en viss verdi og forskjellige resultater for et annet sett med verdier. For eksempel oppdaterer én transaksjon produktmengden, mens en annen oppdaterer kundedetaljer.

Se ekvivalens

Vis ekvivalens oppstår når transaksjonen i både tidsplanen utfører en lignende handling. Eksempel: én transaksjon setter inn produktdetaljer i produkttabellen, mens en annen transaksjon setter inn produktdetaljer i arkivtabellen. Transaksjonen er den samme, men tabellene er forskjellige.

KONFLIKT Ekvivalens

I dette tilfellet oppdaterer/viser to transaksjoner det samme settet med data. Det er en konflikt mellom transaksjoner ettersom rekkefølgen for utførelse vil påvirke utgangen.

Hva er serialiserbarhet?

Serialiserbarhet er prosessen med å søke etter en samtidig tidsplan som utdata er lik en seriell tidsplan der transaksjoner utføres etter hverandre. Avhengig av type tidsplaner, er det to typer serialiserbarhet:

  • konflikt
  • Se

Oppsummering

  • Transaksjonsstyring er en logisk enhet for behandling i et DBMS som innebærer en eller flere databasetilgangsoperasjoner
  • Det er en transaksjon er en programenhet hvis utførelse kan eller ikke kan endre innholdet i en database.
  • Å ikke administrere samtidig tilgang kan skape problemer som maskinvarefeil og systemkrasj.
  • Aktiv, delvis forpliktet, engasjert, mislyktes og avsluttet er viktige transaksjonstilstander.
  • Den fullstendige formen for ACID-egenskaper i DBMS is Atomisitet, konsistens, isolasjon og holdbarhet
  • Tre DBMS-transaksjonstyper er Base on Application Areas, Action, & Structure.
  • En tidsplan er en prosess som oppretter en enkelt gruppe av flere parallelle transaksjoner og utfører dem én etter én.
  • Serialisering er prosessen med å søke etter en samtidig tidsplan hvis utgang er lik en seriell tidsplan der transaksjoner utføres etter hverandre.