SYRA
I samband med databaser härrör ACID från den engelska akronymen Atomicity , Consistency , Isolation och Durability ( A tomicity, Consistency, I solamento och D urability ) och indikerar de logiska egenskaper som transaktioner måste ha .
Beskrivning
För att transaktioner ska fungera korrekt på data måste mekanismerna som implementerar dem uppfylla dessa fyra egenskaper:
- Atom : processen måste vara delbar i ett ändligt antal odelbara enheter, så kallade transaktioner . Utförandet av en transaktion måste därför per definition vara antingen totalt eller null, och partiella utförande är inte tillåtna; en process, även delvis, å andra sidan, eftersom en uppsättning transaktioner kanske inte är elementär.
- Konsekvent : databasen respekterar integritetsbegränsningarna , både i början och i slutet av transaktionen. Det får inte finnas några motsägelser ( datainkonsekvens ) mellan data som lagras i DB;
- Isolerad : varje transaktion måste utföras på ett isolerat och oberoende sätt från de andra transaktionerna, det eventuella misslyckandet av en transaktion får inte störa de andra pågående transaktionerna;
- Hållbar : även kallad persistens , det hänvisar till det faktum att när en transaktion har begärt ett commit arbete , får de ändringar som gjorts aldrig gå förlorade. För att undvika dataförlust på grund av funktionsfel under tiden mellan det ögonblick då databasen åtar sig att skriva ändringarna och det ögonblick då den faktiskt skriver dem, förs loggposter där alla operationer noteras på DB.
I DBMS - system behandlas transaktioner genom transaktionsbearbetning . En fråga (dvs en förfrågan till databasen) och andra åtgärder grupperas i en transaktion som måste utföras atomärt , isolerat från de andra och eventuellt involvera en permanent modifiering av databasen. Detta beteende säkerställs av
- Concurrency Control Manager eller Private WorkSpace som garanterar atomicitet och isolering
- Loggning / Recovery Manager som säkerställer hållbarhet och konsekvens.
Isolering
Det finns fyra nivåer av isolering:
- läs oengagerad :
- det tillåter skrivskyddade transaktioner, utan att blockera data för läsning
- en transaktion kan läsa smutsiga data , eftersom den kan försvinna om transaktionen som genererade den avbryts
- Exempel:
- T1 uppdaterar en rad r1
- * T2 kommer åt r1
- * T1 slutar med en rollback
- * T2 fick åtkomst till data som aldrig existerade
- läs engagerad:
- föreskriver omedelbart utlämnande av data i läsning, vilket försenar de skriftliga
- icke-repeterbara läsningar inom samma transaktion
- repeterbar läsning:
- både läs- och skrivdata är blockerade men endast på tuplarna i det berörda bordet
- genererar fenomenet spöken (fantomer)
- serialiserbar:
- Det skulle kunna garantera den faktiska serialiseringsbarheten av koden genom att blockera åtkomst till de tabeller som står på spel, men dessa är för ineffektiva lösningar för att användas i kritiska applikationer, i verkligheten är det serialiserade läget begränsat till att undvika de fenomen som undersöks för de lägsta nivåerna av isolering.
Concurrency Control Manager eller Private WorkSpace
Transaktionen gör ändringar på en kopia av databasresursen. Om det inte avslutas framgångsrikt förstörs kopian, annars görs ändringarna på kopian permanenta genom commit-operationen. Systemet garanterar därmed sin atomicitet . Transaktioner måste utföras isolerat från varandra men ofta utförs många transaktioner samtidigt på samma system. Samtidighetskontrollansvarig ser till att de olika transaktionernas individuella åtgärder utförs i en ordning som inte stör varandra ( isolering ). Concurrency Control Manager realiseras genom två primitiva instruktioner:
- lock , instruktion genom vilken det anges att en resurs är blockerad av en viss transaktion;
- unlock , instruktion genom vilken det anges att en resurs har frigjorts av en viss transaktion.
Serien av lås lagras i låstabellen (specifik del av DBMS). Samtidighetskontrollhanteraren har även till uppgift att lösa dödlägen orsakade av låsningar genom att avbryta en eller flera transaktioner. För att förhindra låsningar och bättre hantera transaktioner introduceras konceptet schemaläggare. Schemaläggaren har till uppgift att garantera isolering, acceptera en transaktion och tilldela den en unik identifierare, be DBMS-bufferthanteraren att läsa/skriva till databasen enligt en viss sekvens.
Loggning / Recovery Manager
För att säkerställa beständighet av databasdata även i händelse av en krasch (t.ex. stopp i transaktionsåtkomst till resursen), registreras varje modifiering av databasen separat på disken. Logghanteraren registrerar dessa ändringar så att återställningshanteraren kan återställa databasen till ett konsekvent tillstånd när som helst (efter en krasch). Logghanteraren skriver sina data genom Buffer Manager men innan den fortsätter ser den till att den verkligen har skrivits till disken. Tidsstämpling associerar varje transaktion och varje resurs med en tidsstämpel för att tillåta och kontrollera åtkomsten av transaktioner till databasresurser.
Bibliografi
- ACID ( Atomicity , Consistency, Isolation, and Durability.) , I Dictionary of E-Business , Hoboken, Wiley, 2003.
- ( EN ) ACID (Atomicity, Consistency, Isolation, and Durability) , i Dictionary of Multimedia and Internet Applications: A Guide for Developers and Users , Hoboken, Wiley, 1999.
Andra projekt
Wikiversity innehåller resurser om ACID