Data base transazionale
Pensiamo ad un insieme di dati anagrafici che raccoglie un certo numero di persone con nome, indirizzo, attività, telefono, email. Al tempo stesso questa raccolta di dati deve essere stabile, nel senso che devo poter trovare sempre gli stessi dati relativi ad una certa persona, ma anche modificabile, perché se la persona cambia casa, l’indirizzo va cambiato. Se la raccolta è il nostro elenco personale di amici e conoscenti, possiamo modificare noi stessi l’indirizzo cambiato. Se però la raccolta riguarda i cittadini di una grande città o di una regione, occorrono criteri e vincoli per poter modificare i dati. Non tutti possono farlo, e le modifiche non possono essere fatte come si vuole, senza rispettare regole e procedure prestabilite.
In una base di dati alcuni cambiamenti sono leciti e può farli chiunque, magari riempiendo un modulo predisposto. Altri sono interdetti, per poter conservare la solidità e l’attendibilità dei dati archiviati.
Le operazioni lecite si chiamano transazioni, e un data base che le permette è detto data base transazionale. Le transazioni corrette devono avere le proprietà dette ACID, acronimo di Atomicity, Consistency, Isolation, e Durability:
- Atomicità: la transazione è indivisibile e la sua esecuzione deve essere o totale o nulla, non può essere parziale;
- Consistenza: prima e dopo una transazione il database si trova in uno stato coerente, senza contraddizioni tra i dati archiviati;
- Isolamento: ogni transazione deve essere eseguita in modo isolato e indipendente dalle altre transazioni, per evitare che una transizione scorretta danneggi altre transizioni;
- Durabilità: una volta approvata la transazione, i cambiamenti apportati non devono andare persi.
In sostanza perciò la variazione dei dati provocata da una transazione, se ha successo deve essere persistente, altrimenti i dati devono tornare come erano prima della transazione. Dopo le operazioni di interrogazione e modifica dei dati, se qualcosa non va si fa abortire la transazione con un comando di rollback, altrimenti la si approva con un comando di commit.
Le transazioni che avvengono nel normale uso dei dati archiviati, e che producono nuovi dati come preventivi, ordini, fatturazioni, alimentano il data warehouse, la grande raccolta di dati a disposizione dell’organizzazione (azienda, istituzione, ente privato o pubblico).