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
  • efficaciala 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