Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En transaktion är en grupp med åtgärder som har följande egenskaper: atomisk, konsekvent, isolerad och varaktig (ACID). Med stöd för transaktioner kan nya typer av program utvecklas, samtidigt som utvecklingsprocessen förenklas och programmet blir mer robust. Resten av det här avsnittet innehåller scenarier som visar behovet av dessa egenskaper, sedan en tabell som definierar varje egenskap.
I en atomisk åtgärdsgrupp måste antingen varje åtgärd i gruppen lyckas eller så måste effekterna av alla ångras (kallas även återställa). En banköverföring måste till exempel vara en atomisk uppsättning med två åtgärder: en debet från ett konto och en kredit till ett annat konto. Debet och kredit måste implementeras som en atomisk grupp. Om dessa två åtgärder inte båda lyckas är överföringen antingen orättvist till förmån för banken eller kontoinnehavaren.
Kravet på konsekvens innebär att data är konsekventa efter transaktionen (förutsatt att vi började med ett konsekvent system före transaktionen). För banköverföringsexemplet kan konsekvens definieras som att det kombinerade kontosaldot för de två kontona är konstant. För att implementera konsekvens i banköverföringsexemplet behöver debet- och kreditverksamheten helt enkelt vara för samma summa pengar.
Ett annat exempel på en transaktion är en uppdatering av en webbplats. En elektronisk handelswebbplats kräver att en ny produktkategoris navigeringssida visas exakt samtidigt som produktinformationssidorna som beskriver de nya produkterna. I det här fallet finns det ett behov av att uppdatera och lägga till flera katalogposter under kontroll av en transaktion. Det är inte bara nödvändigt att uppdateringarna är atomiska, utan det är också nödvändigt att en kund som för närvarande handlar inte får se uppdateringarna som pågår. Det här är ett exempel på isolering egenskap för transaktioner.
Egenskapen för hållbarhet kräver att dess effekter kvarstår när en uppdatering är klar även om systemet slutar svara. I föregående exempel kan hållbarhet tillhandahållas helt enkelt genom att säkerställa tillräcklig dataåterställning så att alla nya filsystemposter som representerar tillägget av en ny produkt på platsen visas när ett system slutar svara. Detta kräver ett system med mekanismer för säkerhetskopiering, återställning och hög tillgänglighet.
Garantin för en transaktions atomicitet, liksom de andra egenskaperna, finns trots vilket antal funktionsfel som helst, inklusive fel som inträffar under återställningsfasen för ett tidigare fel. Så småningom kommer systemet att nå något av två tillstånd: alla åtgärder har tillämpats eller så har ingen av åtgärderna tillämpats.
Egenskaperna för en transaktion sammanfattas i följande tabell.
Termin | Beskrivning |
---|---|
Atomic |
Antingen lyckas alla åtgärder i transaktionen eller så finns ingen av åtgärderna kvar. |
konsekvent |
Om data är konsekventa innan transaktionen börjar blir de konsekventa när transaktionen har slutförts. |
isolerad |
Effekterna av en transaktion som pågår är dolda för alla andra transaktioner. |
Tålig |
När en transaktion är klar är resultatet beständigt och kommer att överleva en systemkrasch. |
Dessa egenskaper säkerställer att programvara kan hantera oväntade fel, eftersom den helt enkelt kan avbryta en transaktion när en oväntad situation förhindrar ett lyckat slutförande. Transaktionsinfrastrukturen säkerställer att alla effekter av den avbrutna transaktionen återställs och returnerar data till ett konsekvent tillstånd. Därför möjliggör ett transaktionssystem en korrekt återställning från systemfel.
För att garantera ACID-egenskaperna måste ett system som stöder transaktioner ha en robust loggningsfunktion som kan användas för att checka in eller återställa transaktioner efter behov. Mer information finns i Common Log File System.