Image hosting by Italian Host

domenica, marzo 11, 2007

Transazione
-
In informatica, una transazione è una sequenza di operazioni, che può concludersi con un successo o un insuccesso; in caso di successo, il risultato delle operazioni deve essere permanente, mentre in caso di insuccesso si deve tornare allo stato precedente all'inizio della transazione.
-
Le transazioni sono normalmente implementate da DBMS o da gestori di transazioni.
-
Una transazione, per essere tale, deve godere delle cosiddette proprietà ACID, particolarmente significative nei sistemi in cui possono essere eseguite più transazioni contemporaneamente.
-
Nei linguaggi di accesso ai DBMS, la gestione delle transazioni fa parte del Data Manipulation Language (linguaggio di manipolazione dei dati). Infatti, le modifiche allo schema del database o alle autorizzazioni non sono facilmente gestibili con transazioni.
-
Un utilizzo tipico delle transazioni è il seguente:
-
  • Prima di eseguire una transazione, si esegue un'istruzione di "inizio transazione".
  • Si eseguono le operazioni di interrogazione e modifica dei dati.
  • Se si riscontra qualche anomalia, si esegue un'istruzione detta di "rollback", per abortire la transazione.
  • Se si sono eseguite tutte le operazioni senza riscontrare anomalie, si esegue un'istruzione detta di "commit", per confermare la transazione.
Se il DBMS riscontra internamente qualche anomalia, esegue automaticamente una rollback.
-
Se il DBMS stesso termina bruscamente, per intervento esterno, o per un bug, o per spegnimento improvviso del computer, il DBMS, quando viene riattivato, esegue automaticamente la rollback delle transazioni che erano in corso al momento del crash.
-
Alcuni sistemi non prevedono un'istruzione di inizio transazione, perché quando ci si collega al DBMS, si inizia automaticamente una transazione, e quando si esegue una commit o una rollback, si inizia automaticamente un'altra transazione.
-
Se ci si scollega dal DBMS senza eseguire una commit, alcuni DBMS eseguono automaticamente una commit, altri una rollback.
-
Per implementare una transazione, tipicamente si usa un'apposita area d'appoggio del disco fisso in cui vengono copiati i dati originali appena prima di essere modificati. Quando viene eseguita una commit, i dati originali copiati vengono eliminati. Quando viene eseguita una rollback, si ricopiano indietro i dati originali copiati. Pertanto, una commit è più efficiente di una rollback.
-
Una possibile causa del fallimento di una transazione è l'insufficienza di spazio d'appoggio per copiare i dati originali.

Nessun commento: