Anar al contingut

Transacció (informàtica)

De L'Enciclopèdia, la wikipedia en valencià
Erro al crear miniatura:
Transacció (informàtica)

Una transacció és una interacció en una estructura de senyes complexa, composta per varis processos que s'han d'aplicar un despuix de l'atre. La transacció deu realisar-se d'una sola volta i sense que l'estructura a mig manipular puga ser alcançada pel restant del sistema fins que s'hagen finalisat tots els seus processos.

Eixemple

[editar | editar còdic]

Es pot posar com a eixemple una transferència de fondos entre dos contes corrents d'un banc. Si es vol transferir, supongam, 5000€ de la conte corrent de A a B i els contes tenen, respectivament, 20 000€ i 0€ de saldo els passos llògics serien:

  1. Comprovar si en el conte A hi ha diners suficients.
  2. Restar 5000€ del conte de A, en lo que el seu saldo passa a ser de 15 000€.
  3. Sumar 5000€ al conte de B, en lo que els saldos queden A=15 000€ i B=5000€

Ara be, si entre el pas 2 i el 3 el sistema sofrix una parada o error inesperat, els contes quedarien com A=15 000 i B=0, en lo que s'han volatilizado 5000€ i presumiblement ni A ni B estaran contents, i hagueren preferit que la transacció mai haguera segut iniciada.

Este eixemple ilustra per qué les transaccions tenen un comportament desijat de tot o res, o es realisa completament o no deu tindre cap efecte.

Propietats ACID

[editar | editar còdic]

Les transaccions deuen complir quatre propietats denominades ACID pels seus inicials en anglés:

  1. Atomicidad (Atomicity): és la propietat que assegura que l'operació s'ha realisat o no, i per lo tant davant un fallo del sistema no pot quedar a miges.
  2. Consistència (Consistency): és la propietat que assegura que només s'escomença allò que es pot acabar. Per lo tant, s'eixecuten aquelles operacions que no van a trencar les regles i directrius d'integritat de la base de senyes.
  3. Aïllament (Isolation): és la propietat que assegura que una operació no pot afectar a unes atres. Açò assegura que la realisació de dos transaccions sobre la mateixa informació mai generarà cap tipo d'error.
  4. Durabilitat (Durability): és la propietat que assegura que una volta realisada l'operació, esta persistirà i no es podrà desfer encara que falle el sistema.

La atomicidad front a fallos se sol implementar en mecanismes de journaling, i la protecció front a accessos concurrents per mig de bloquejos en les estructures afectades. La serialibilidad ve garantisada per la atomicidad. La permanència se sol implementar forçant als perifèrics encarregats d'almagasenar els canvis a confirmar la completa i definitiva transmissió de les senyes al mig (generalment, el disc).

La forma algorítmica que solen tindre les transaccions és la següent:

iniciar transacció (llista de recursos a bloquejar)
eixecució de les operacions individuals.
if (tot_ok) {
  ''aplicar_canvis''
}
else {
  ''cancelar_canvis''
}

En qualsevol moment, el programa podria decidir que és necessari fer fallar la transacció, en lo que el sistema deurà revertir tots els canvis fets per les operacions ya fetes. En el llenguage SQL es denomina COMMIT a aplicar_canvis i ROLLBACK a cancelar_canvis.

Les transaccions solen vore's implementades en sistemes de bases de senyes i, més recentment, s'han vist incorporades a cóm gestiona un sistema operatiu l'interacció en un sistema d'archius (com vàries característiques de les bases de senyes, degut a que són molt similars arquitectónicamente).


Referències

[editar | editar còdic]