SYRE
I forbindelse med databaser stammer ACID fra det engelske akronym Atomicity , Consistency , Isolation og Durability ( A tomicity, Consistency, I solamento og D urability ) og angiver de logiske egenskaber, som transaktioner skal have .
Beskrivelse
For at transaktioner kan fungere korrekt på data, skal mekanismerne, der implementerer dem, opfylde disse fire egenskaber:
- Atomisk : processen skal være delelig i et begrænset antal udelelige enheder, kaldet transaktioner . Udførelsen af en transaktion skal derfor per definition være enten total eller nul, og delvise udførelser er ikke tilladt; en proces, selv delvis, på den anden side, da et sæt transaktioner måske ikke er elementært.
- Konsistent : Databasen respekterer integritetsbegrænsningerne , både i begyndelsen og slutningen af transaktionen. Der må ikke være nogen modsætninger ( datainkonsistens ) mellem de data, der er lagret i DB;
- Isoleret : hver transaktion skal udføres på en isoleret og uafhængig måde fra de andre transaktioner, den eventuelle fejl i en transaktion må ikke forstyrre de andre igangværende transaktioner;
- Holdbar : også kaldet persistens , det refererer til det faktum, at når først en transaktion har anmodet om en forpligtelse , må de foretagne ændringer aldrig gå tabt. For at undgå tab af data på grund af funktionsfejl i tidsrummet mellem det tidspunkt, hvor databasen forpligter sig til at skrive ændringerne, og det øjeblik, hvor den faktisk skriver dem, føres logregistreringer, hvor alle operationer er noteret på DB.
I DBMS- systemer behandles transaktioner ved transaktionsbehandling . En forespørgsel (dvs. en forespørgsel til databasen) og andre handlinger er grupperet i en transaktion, der skal udføres atomisk , isoleret fra de andre og muligvis involverer en permanent ændring af databasen. Denne adfærd er sikret af
- Concurrency Control Manager eller Private WorkSpace , der garanterer atomicitet og isolation
- Logning / Recovery Manager , der sikrer holdbarhed og konsistens.
Isolering
Der er fire niveauer af isolation:
- læs uforpligtende :
- det tillader skrivebeskyttede transaktioner uden at blokere dataene for læsning
- en transaktion kan læse beskidte data , fordi de kan forsvinde, hvis transaktionen, der genererede den, afbrydes
- Eksempler:
- T1 opdaterer en række r1
- * T2 får adgang til r1
- * T1 slutter med en tilbagerulning
- * T2 fik adgang til data, der aldrig har eksisteret
- læst engageret:
- giver mulighed for øjeblikkelig frigivelse af data ved læsning, hvilket forsinker de skriftlige
- ikke-gentagelige læsninger inden for samme transaktion
- gentagelig læsning:
- både læse- og skrivedata er blokeret, men kun på tuplerne af det involverede bord
- genererer fænomenet spøgelser (fantomer)
- kan serialiseres:
- Det kunne garantere den faktiske serialiserbarhed af koden ved at blokere adgangen til de tabeller, der er på spil, men disse er for ineffektive løsninger til at blive brugt i kritiske applikationer, i virkeligheden er den serialiserede tilstand begrænset til at undgå de fænomener, der er undersøgt for de laveste niveauer af isolation.
Concurrency Control Manager eller Private WorkSpace
Transaktionen foretager ændringer på en kopi af databaseressourcen. Hvis det ikke afsluttes med succes, bliver kopien ødelagt, ellers bliver ændringerne på kopien gjort permanente gennem commit-operationen. Systemet garanterer således dets atomicitet . Transaktioner skal udføres isoleret fra hinanden, men ofte udføres mange transaktioner samtidigt på det samme system. Concurrency control manageren sørger for, at de enkelte transaktioners individuelle handlinger udføres i en rækkefølge, der ikke forstyrrer hinanden ( isolation ). Concurrency Control Manager realiseres gennem to primitive instruktioner:
- lås , instruktion, hvorved det er angivet, at en ressource er blokeret af en bestemt transaktion;
- unlock , instruktion, hvorved det er angivet, at en ressource er blevet frigivet ved en bestemt transaktion.
Serien af låse er gemt i låsetabellen (specifik sektion af DBMS). Concurrency Control Manager har også til opgave at løse deadlocks forårsaget af låse ved at afbryde en eller flere transaktioner. For at forhindre låse og bedre styre transaktioner introduceres begrebet planlægger. Planlæggeren har til opgave at garantere isolation, acceptere en transaktion og tildele den en unik identifikator, bede DBMS buffer manager om at læse/skrive til databasen i henhold til en bestemt sekvens.
Logning / Recovery Manager
For at sikre persistens af databasedata, selv i tilfælde af et nedbrud (f.eks. stall i transaktionsadgang til ressourcen), registreres hver ændring af databasen separat på disken. Logadministratoren registrerer disse ændringer for at tillade gendannelsesadministratoren at gendanne databasen til en konsistent tilstand til enhver tid (efter et nedbrud). Log-manageren skriver sine data gennem Buffer Manager, men før den fortsætter, sikrer den sig, at de faktisk er blevet skrevet til disken. Tidsstempling forbinder hver transaktion og hver ressource med et tidsstempel, som tillader og kontrollerer transaktioners adgang til databaseressourcer.
Bibliografi
- ACID ( Atomicitet , Konsistens, Isolation og Holdbarhed.) , In Dictionary of E-Business , Hoboken, Wiley, 2003.
- ( EN ) ACID (Atomicitet, Konsistens, Isolation og Durability) , i Dictionary of Multimedia and Internet Applications: A Guide for Developers and Users , Hoboken, Wiley, 1999.
Andre projekter
Wikiversity indeholder ressourcer om ACID