Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Hva er ACID? | Acid
SQL-optimalisering og spørringsfunksjoner

Hva er ACID?

Sveip for å vise menyen

Vi starter vår utforskning av avanserte SQL-emner med konseptet ACID-prinsipper.

Note
Les mer

ACID er et akronym for Atomicity, Consistency, Isolation og Durability. Disse fire egenskapene er grunnleggende prinsipper innen databaseadministrasjon og er utformet for å sikre påliteligheten til databasetransaksjoner.

Du har kanskje lagt merke til at vi bruker ordet transaksjon i ACID-definisjonen. Du tenker kanskje på en banktransaksjon når du hører dette ordet, men i databasesammenheng er en transaksjon definert litt annerledes.

Note
Les mer

En transaksjon refererer til en sekvens av én eller flere databaseoperasjoner som behandles som en enkelt logisk arbeidsenhet.

Tenk deg at du bruker en nettbutikk.
Du legger varer i handlekurven, går til kassen og gjennomfører en betaling. Hele denne prosessen kan betraktes som en databasetransaksjon. Slik fungerer det:

  1. Start transaksjon: du starter utsjekkingsprosessen;
  2. Operasjoner:
    • Systemet verifiserer at varene i handlekurven fortsatt er på lager;
    • Betalingsinformasjonen din behandles;
    • Lagerbeholdningen oppdateres for å gjenspeile varene du har kjøpt;
    • En ordre registreres i databasen.
  3. Fullfør transaksjon: når alle disse trinnene er fullført, blir transaksjonen fullført, noe som betyr at alle endringene lagres i databasen;
  4. Tilbakestill (om nødvendig): hvis et trinn mislykkes (for eksempel hvis betalingen ikke går gjennom), tilbakestilles transaksjonen, noe som betyr at ingen av endringene lagres. Dette sikrer at databasen forblir i en konsistent tilstand, som om transaksjonen aldri fant sted.

Dette eksempelet viser hvordan en transaksjon samler flere operasjoner i én pålitelig prosess.

Hvorfor trenger vi ACID?

ACID-egenskaper er viktige i databaser av tre hovedgrunner:

  • For det første garanterer de transaksjonspålitelighet ved å behandle transaksjoner som enkeltstående, udelelige enheter, forhindrer delvise oppdateringer og opprettholder konsistens;
  • For det andre muliggjør de kontroll av samtidighet ved å sikre at transaksjoner utføres uavhengig, forhindrer forstyrrelser og bevarer datakonsistens i miljøer med flere brukere;
  • Til slutt sikrer de datavarighet ved å permanent lagre bekreftede transaksjoner, overleve systemfeil og sikre datagjenoppretting.
Note
Merk

La oss se på en situasjon som involverer en bankkonto:

  1. Transaksjon 1 (T1): Du overfører $100 fra sparekontoen din til brukskontoen din.
  2. Samtidig, Transaksjon 2 (T2): Du sjekker saldoen på sparekontoen din på nett.
  3. Men så oppstår det en feil i T1—kanskje på grunn av et nettverksproblem—og overføringen fullføres ikke.
  4. I mellomtiden fullføres T2 og viser saldoen på sparekontoen din, inkludert de $100 som faktisk ikke har blitt overført ennå.

Dette bryter med Isolasjon-egenskapen i ACID. Selv om overføringen ikke ble fullført (på grunn av feil i T1), har du allerede sett effekten av den i kontosaldoen din. Denne inkonsistensen kan forvirre brukere og føre til feilaktige økonomiske beslutninger.

question mark

Hva står ACID for i sammenheng med databasetransaksjoner?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 1. Kapittel 2
some-alt