IT-transaksjon

I informatikk , og spesielt i databaser , implementeres en transaksjon som en reservasjon, et kjøp eller en betaling via en rekke operasjoner som endrer databasen fra en tilstand A - før transaksjonen - til en senere B-tilstand og mekanismer gjør det er mulig å oppnå at denne sekvensen er samtidig atomær , sammenhengende , isolert og holdbar ( ACID ).

Flertallet av hierarkiske så vel som relasjonelle databasestyringssystemer på markedet tillater at det gjennomføres atomare, sammenhengende, isolerte og bærekraftige transaksjoner. NoSQL- systemer hevder dette.

De ACID egenskaper

Konseptet med transaksjon er basert på forestillingen om synkroniseringspunkt ( synkroniseringspunkt ) som representerer en stabil tilstand for datasystemet som vurderes, spesielt av dataene.

Atomisitet En transaksjon må gjøres i det hele tatt eller ingenting, det vil si helt eller slett ikke; Konsistens Datakonsistens må sikres i alle tilfeller, selv i feiltilfeller der systemet må gå tilbake til forrige konsistente tilstand. Konsistens er etablert av funksjonelle regler. Eksempel: En eiendomstransaksjon kan ta lang tid. Fra et datasynspunkt vil det bli sett på som en funksjonell prosedyre som består av flere datatransaksjoner (reservasjon, kjøpsforslag, kompromiss, notarialhandling). Mellomstadiene styres derfor funksjonelt via tilstanden til leilighetsobjektet. Selv om prosedyren pågår, forblir systemet konsistent mellom hvert trinn. I tilfelle avvikling av prosedyren (en slags tilbakeføring av eiendomstransaksjonen), legger de funksjonelle reglene leiligheten ut for salg igjen. Det er mange prosessuelle saker som ikke kan håndteres av en enkelt IT-transaksjon. Designeren må spesifisere de funksjonelle reglene som kontrollerer endringene i tilstanden til de aktuelle objektene og manuelt administrere ekvivalenten til forpliktelse og tilbakeføring av prosedyren Isolasjon Transaksjonen fungerer i en isolert modus der bare den kan se dataene den endrer mens den venter på et nytt synkroniseringspunkt; systemet garanterer andre transaksjoner, utført parallelt på det samme systemet, synlighet i tidligere data. Dette oppnås takket være systemlåsene satt av DBMS. Følgende eksempel illustrerer en mer funksjonell isolasjon som implementerer en applikasjonslåsing: En aktør plasserer en ordre med tanke på en kontekst. Denne konteksten må ikke ha endret seg når han validerer bestillingen, ellers kan ordren miste all sin betydning. For å forhindre at konteksten endres, er det mulig å låse den før du leser den. Men det er ofte en forbruker av dataressurser og upraktisk for andre, spesielt hvis refleksjon og innspill varer i flere minutter. I ledelsen er det generelt tilstrekkelig å bare sjekke på tidspunktet for oppdateringen at konteksten ikke har endret seg: optimistisk blir isolasjonen kontrollert a posteriori; Varighet Når transaksjonen er fullført, er systemet i en holdbar stabil tilstand, enten etter en vellykket transaksjonsendring eller etter en feil som resulterer i en retur til den forrige stabile tilstanden. Bærekraft er ofte involvert i batchbehandling ( batch ) eller asynkron replikering som gir utslipp. Nedstrømsapplikasjonen har ikke rett til å stille spørsmål ved den forrige transaksjonen som utstedte hendelsen, ellers vil dette bety at denne transaksjonen ikke etterlot systemet i en konsistent tilstand. Oppstrømsapplikasjonen må derfor sjekke alt nøye før informasjonen formidles. Når den funksjonelle arkitekturen ikke er ren, er det ofte nødvendig å håndtere avvisninger. Disse eksepsjonelle behandlingene må deretter spesifiseres slik at avvisninger resirkuleres ved en ofte kompleks funksjonell prosedyre. Derfor er betydningen av konsistensen av transaksjonen i forhold til hele systemet.

Eksempel på transaksjoner i bankverdenen

For eksempel under en datoperasjon med overføring av penger fra en bankkonto til en annen bankkonto, er det en oppgave å ta ut penger fra kildekontoen og en innskuddsoppgave fra målkontoen. Dataprogrammet som utfører denne transaksjonen vil sikre at begge operasjonene kan utføres uten feil, og i dette tilfellet vil endringen tre i kraft på begge kontoer. Hvis dette ikke er tilfelle, avbrytes operasjonen. Begge kontoene beholder sine opprinnelige verdier. Dette garanterer konsistensen av dataene mellom de to kontoene.

Bruk i databaser

Datatransaksjoner er mye brukt i DBMS.

Transaksjonelt kallenavn

Denne gamle teknikk, i stor utstrekning med transaksjons skjermer , slik som IBM CICS , Bulls TDS, Siemens UTM, er nå mye brukt i web-applikasjon arkitekturer , og i klient-server -applikasjoner .

Faktisk ser ingenting mer ut som en webside enn en synkron skjerm:

Problemet i denne driftsmåten er at det noen ganger tar en sekvens på flere skjermer eller sider for å utvikle en fullstendig ACID- transaksjon . Det var Merise- metoden som definerte disse konseptene for første gang:

Denne oppgaven assimileres med en pseudotransaksjon som fra skjermens synspunkt er en teknisk transaksjon, men selvfølgelig ikke veldig funksjonell før sekvensen er ferdig.

Men :

Spørsmål:

Svarene fra de eldste er også de som brukes i dag i "nye" teknologier:

Vi forstår hvorfor hvis vi setter systemlås (SGBD) i hele kjeden, hvis varighet er ukontrollerbar, ville systemet kollapse. Dette er hele poenget med pseudotransaksjonen. Men strategien for isolasjonskontroll er grunnleggende funksjonell.

Pseudotransaksjonen er derfor SUR, men de funksjonelle reglene er slik at konsistensen mellom hver pseudotransaksjon i en sekvens er garantert ved fravær av oppdatering av databasen.


En godt designet klient / serverapplikasjon bruker også pseudotransaksjoner, men konteksten håndteres i klientapplikasjonen, noe som tar belastningen på serveren. Det typiske diagrammet er som følger:

Noe som gir N + 1 pseudotransaksjoner.

Se også

Merknader og referanser

  1. (in) Philip A.Bernstein og Eric Newcomer, prinsipper for transaksjonsbehandling , Morgan Kaufmann - 1997 ( ISBN  9781558604155 )
  2. Peter McIntyre et al., Pro PHP Programming , Apress, side 127: “NoSQL-databaser, som navnet antyder, er ikke klassiske SQL-databaser og implementerer ikke ACID-egenskapene. "

Bibliografi