DBMS: caratteristiche, operazioni sui dati, transazioni
Nel nostro articolo introduttivo su basi di dati e sistemi informativi abbiamo definito cos’è un DBMS (DataBase Management System). In questo articolo analizziamo le caratteristiche dei DBMS, le operazioni fondamentali che i DBMS devono consentire su un database e introduciamo il concetto di transazione.
Caratteristiche dei DBMS
Le caratteristiche che un DBMS deve garantire sono principalmente le seguenti:
- dimensioni: le basi di dati devono poter avere dimensioni enormi (nell’ordine dei TB ad esempio); possono naturalmente esistere anche basi di dati “piccole”, ma i sistemi devono poter gestire i dati senza porre limiti alle dimensioni (se non quelle fisiche delle memorie ausiliarie
- condivisione: le basi di dati devono poter essere condivise, cioè applicazioni e utenti diversi devono poter accedere a dati comuni; in questo modo si riduce la ridondanza dei dati, ossia si evitano ripetizioni, e si riduce anche la possibilità di inconsistenza: se esistono più copie dei dati invece di un’unica base di dati, può capitare che i dati siano non allineati, cioè che lo stesso dato sia diverso su copie diverse
- persistenza: le basi di dati devono essere persistenti, ossia salvate su memorie di massa e non contenute solo in memoria centrale (RAM); in questo modo i dati non verranno persi allo spegnimento del computer
- affidabilità: i DBMS devono garantire la conservazione della base di dati a prescindere da malfunzionamenti hardware o software, permettendo ad esempio funzionalità di salvataggio (backup) e ripristino (recovery); ne parliamo nell’articolo il backup
- privatezza: ciascun utente, riconosciuto tramite nome e password, è abilitato a svolgere solo determinate funzioni, attraverso meccanismi di autorizzazione
- efficienza: i DBMS devono svolgere le operazioni utilizzando un insieme di risorse (tempo e spazio) accettabile per gli utenti e i loro scopi
- efficacia: la base di dati deve migliorare e rendere produttive, in ogni senso, le attività degli utenti.
Operazioni fondamentali
Un DBMS deve consentire di effettuare su una base di dati le seguenti operazioni fondamentali:
- definire una base di dati, significa specificare per i dati che sono memorizzati:
- i tipi dei dati (es.: testo, numerico ecc.);
- le strutture dei dati (es.: di una persona interessano cognome, nome, data-di-nascita ecc.);
- i vincoli sui dati (es.: le province del Trentino-Alto Adige sono Trento e Bolzano dunque se una persona è residente in questa regione, valori possibili per “provincia di residenza” possono essere solo “TN” oppure “BZ”);
- creare una base di dati, significa memorizzare i dati in un dispositivo di memorizzazione (disco o nastro) controllato dal DBMS;
- gestire una base di dati, significa poter:
- interrogare (query) la base di dati per estrarre informazioni;
- modificare la base di dati se la realtà rappresentata cambia;
- generare rapporti (report) sui dati contenuti
Il linguaggio standard che permette di interagire con i dati è l’SQL (Structured Query Language), di cui parliamo nell’articolo database relazionali: primi cenni di SQL.
Transazioni
I DBMS professionali permettono anche di gestire le transazioni.
Una transazione è una sequenza di operazioni su un database, caratterizzata da quattro proprietà, dette ACID: Atomicità, Consistenza, Isolamento e Durabilità:
- Atomicità (Atomicity) in quanto una transazione non può concludersi in uno stato intermedio, ma solamente se viene completata, ossia portata a termine; l’esempio classico è il prelievo con un bancomat ad un ATM (una sequenza di operazioni che sono valide solo nel loro insieme): se la transazione non è completata (se non sono state erogate le banconote), non deve essere effettuato l’addebito sul conto corrente dal quale si sta prelevando.
- Consistenza (Consistency) in quanto una transazione rispetta i vincoli dell’integrità e dunque se lo stato iniziale è corretto, allora anche lo stato finale è corretto, grazie ai comandi di commit (chiusura ufficiale di una transazione) e rollback (cancellazione di tutte le modifiche effettuate da inizio transazione, nel caso questa non vada a buon fine).
- Isolamento (Isolation) in quanto le singole operazioni che compongono la sequenza di una transazione sono isolate (non comunicate o accessibili dall’esterno) fino a che l’intera sequenza non è completata.
- Durabilità (Durability) in quanto l’effetto di una transazione completata (ossia che va a buon fine) è persistente.
I DBMS professionali consentono transazioni concorrenti e relativi lock: danno la possibilità di effettuare contemporaneamente più transizioni e permettono la gestione dei blocchi (lock) da imporre sui dati per evitare errori dovuti alle operazioni che si stanno facendo.
Bibliografia:
- Dulli, S., Rossignoli, N., Informatica e multiemedialità, Diade, Padova, 2000
- Rossignoli, N., Informatica per i beni culturali, Lampidistampa, Milano, 2010
Foto di Christina Morillo da Pexels