DBMS - Basi di dati

DBMS – Data Base Management System


Basi di dati: concetti fondamentali e funzionamento dei DBMS

Una base di dati permette di organizzare e conservare informazioni in modo strutturato. Per comprenderne il funzionamento, partiamo dai concetti di dato e informazione, per arrivare ai modelli di rappresentazione e agli strumenti di gestione.In questo articolo

Dato, informazione e base di dati

InformazioneUna notizia, un dato o un elemento che consente di acquisire conoscenza di fatti, situazioni o modi di essere.DatoCiò che è disponibile prima di ogni elaborazione. In informatica è un elemento costituito da simboli che devono essere elaborati per ricavarne informazioni.Sistema informativoUn insieme di strumenti automatici, procedure, risorse umane e norme organizzative dedicato alla gestione dell’informazione: raccolta, archiviazione, elaborazione e scambio. Supporta sia le attività operative sia quelle di programmazione, controllo e valutazione.Base di datiUna collezione di dati strutturati e permanenti, utilizzati per rappresentare le informazioni di interesse per un sistema informativo.

Che cos’è un DBMS

Un DBMS, acronimo di Database Management System, è un sistema software che consente la gestione delle basi di dati. Le sue funzioni principali riguardano la condivisione, l’organizzazione, l’affidabilità e l’accesso ai dati.

Controllo centralizzato dei dati

Il DBMS permette a più utenti e programmi di accedere ai dati attraverso un sistema di controllo centralizzato e integrato. I dati non appartengono a una singola applicazione: applicazioni diverse li utilizzano attraverso il DBMS.

Questo approccio aiuta a ridurre la ridondanza, cioè la duplicazione dei dati in archivi diversi, e le possibili inconsistenze, che si verificano quando lo stesso dato assume valori differenti in archivi distinti.

Indipendenza fisica e logica

Il DBMS organizza la descrizione dei dati su più livelli, così che gli utenti possano utilizzare le informazioni di interesse senza dover conoscere i dettagli della loro memorizzazione fisica. Questa separazione riduce la dipendenza delle applicazioni dall’organizzazione dei dati.

Controllo della concorrenza

Quando più programmi accedono contemporaneamente agli stessi dati, il DBMS coordina le operazioni per evitare errori nel loro trattamento. Agisce quindi da arbitro tra richieste concorrenti.

Affidabilità, recupero e protezione

Il DBMS deve contribuire a proteggere i dati dagli effetti di malfunzionamenti hardware e comportamenti errati dei programmi, consentendo il ripristino di uno stato corretto della base di dati.

Il documento richiama procedure di backup, cioè salvataggio, e recovery, cioè recupero, oltre alla duplicazione in mirroring nei casi più critici.

Il DBMS permette inoltre di definire criteri di accesso: gli utenti autorizzati possono operare sui dati secondo il proprio livello di privilegio, tutelando la riservatezza delle informazioni.

Efficienza ed efficacia

L’efficienza consiste nel fornire risposte in tempi accettabili, utilizzando una quantità contenuta di risorse. Dipende dalle tecniche di implementazione e dalla progettazione della base di dati. L’efficacia riguarda invece la capacità di rendere produttive le attività degli utenti.

Modelli dei dati

Un modello dei dati è un insieme di concetti e meccanismi di strutturazione o astrazione utilizzati per rappresentare una base di dati, con operatori e vincoli d’integrità predefiniti.

Modellare i dati significa costruire una rappresentazione semplificata della realtà osservata o di un problema aziendale, individuando gli elementi importanti e i legami che li collegano.

  • I modelli concettuali descrivono i concetti del mondo reale, indipendentemente dalle scelte di organizzazione dei dati.
  • I modelli logici, pur restando astratti, riflettono la struttura con cui i dati vengono organizzati in un DBMS, senza descriverne la memorizzazione fisica.
ModelloStruttura di riferimento
RelazionaleTabelle e concetto matematico di relazione, basato sulla teoria degli insiemi.
GerarchicoStrutture ad albero, utilizzate già nei primi DBMS degli anni Sessanta.
ReticolareStrutture a grafo, come estensione dell’organizzazione gerarchica.
A oggettiConcetti propri della programmazione a oggetti per rappresentare e organizzare i dati.

Il modello concettuale Entità-Relazione

Il modello Entità-Relazione, indicato anche come E/R o ER e ideato da Peter P. Chen, rappresenta in forma simbolica la realtà di interesse, indipendentemente dalle applicazioni e dal modello logico scelto.EntitàUn oggetto concreto o astratto che possiede un significato anche quando viene considerato da solo.AssociazioneUn legame che stabilisce un’interazione tra entità.AttributoUna proprietà di un’entità o di un’associazione. Può essere caratterizzata da formato, per esempio data, intero o carattere, dimensione e possibilità di essere opzionale.ChiaveUn insieme minimale di attributi che permette di distinguere le istanze di una stessa entità.

Nella rappresentazione descritta dalla fonte, i rettangoli indicano le entità, i rombi le associazioni e i cerchi gli attributi.

Molteplicità e partecipazione

La molteplicità specifica quante istanze di un’entità possono essere associate a un’istanza dell’altra entità.

  • Il valore minimo è 0 quando la partecipazione è facoltativa e 1 quando è obbligatoria.
  • Il valore massimo è 1 per una sola istanza e N per più istanze.

In base ai valori massimi, le associazioni si distinguono in uno a uno (1:1), uno a molti (1:N) e molti a molti (N:N).

Nella notazione adottata dalla fonte, una linea continua indica la partecipazione obbligatoria e una linea tratteggiata quella facoltativa.

Il modello relazionale

Il modello relazionale può essere ottenuto dal modello concettuale mediante opportune regole di derivazione. Si fonda sul concetto matematico di relazione e rappresenta i dati mediante tabelle.

Una relazione su n insiemi è un sottoinsieme del loro prodotto cartesiano: contiene quindi alcune delle tuple che si possono costruire prendendo un elemento da ogni insieme.GradoIl numero delle colonne della relazione.AttributoIl nome che identifica una colonna.DominioL’insieme di tutti i valori possibili per un attributo.CardinalitàIl numero delle tuple che compongono la relazione.TuplaUna riga della relazione, contenente i valori corrispondenti agli attributi.Chiave di una relazioneUn attributo o una combinazione minimale di attributi che identifica univocamente ciascuna tupla.

Requisiti e integrità dell’entità

Nel modello relazionale descritto dalla fonte valgono alcuni requisiti fondamentali:

  • Tutte le righe di una tabella contengono lo stesso numero di colonne.
  • Gli attributi contengono valori elementari, o atomici: una cella contiene un solo valore, anziché un insieme di valori.
  • I valori di un attributo appartengono al suo dominio e sono quindi omogenei.
  • Non possono esistere due righe con gli stessi valori per tutti gli attributi.
  • L’ordine con cui le righe compaiono nella tabella non è significativo.

La chiave primaria identifica univocamente ogni tupla e non può contenere valori nulli. Questa regola prende il nome di integrità dell’entità, o entity integrity.

Un valore nullo indica un’informazione mancante o sconosciuta: per questo non può essere utilizzato nei campi che compongono la chiave primaria.

Dal modello E/R alle tabelle

Le regole di derivazione consentono di trasformare il modello concettuale Entità-Relazione in uno schema relazionale.

  • Le entità diventano relazioni, cioè tabelle.
  • Gli attributi vengono riportati nel modello relazionale conservando le caratteristiche pertinenti.
  • L’identificatore univoco di un’entità diventa la chiave primaria della tabella corrispondente.

Associazione uno a uno: 1:1

La fonte presenta l’accorpamento delle due entità in un’unica tabella, contenente gli attributi di entrambe. Questa soluzione va valutata in base alle caratteristiche delle entità e alla loro partecipazione all’associazione: non è una regola da applicare automaticamente a qualsiasi associazione 1:1.

Associazione uno a molti: 1:N

Nella tabella che rappresenta l’entità dal lato “molti” si inserisce l’identificatore dell’entità dal lato “uno” come chiave esterna, o foreign key (FK). Si riportano anche gli eventuali attributi dell’associazione.

Associazione molti a molti: N:N

Si crea una terza tabella che contiene le chiavi primarie delle due tabelle coinvolte e gli eventuali attributi dell’associazione.

Schemi e istanze

In una base di dati si distinguono una parte strutturale e una parte costituita dai valori effettivamente presenti.

  • Lo schema descrive le caratteristiche e la struttura dei dati. Rimane invariato nel tempo, salvo modifiche strutturali.
  • L’istanza è l’insieme dei valori effettivi presenti nella base di dati in un determinato momento e può cambiare nel tempo.

I tre livelli di descrizione dei dati

L’architettura descritta dalla fonte distingue tre livelli, ciascuno con il proprio schema.

LivelloChe cosa descrive
EsternoLa porzione della base di dati vista da un utente o da un’applicazione. Può essere realizzata mediante viste, cioè relazioni derivate da quelle dello schema logico.
LogicoL’intera base di dati secondo il modello adottato dal DBMS, senza descrivere i dettagli della memorizzazione fisica.
InternoL’organizzazione fisica dei dati e le strutture di memorizzazione, come file e indici.

Il DBMS gestisce le corrispondenze tra questi livelli: traduce le operazioni accessibili attraverso lo schema esterno in operazioni sullo schema logico e, infine, sui dati memorizzati secondo lo schema interno.

Indipendenza fisica e logica

L’indipendenza dei dati permette agli utenti di lavorare a un livello astratto, senza dipendere dai dettagli di realizzazione del DBMS. La separazione in livelli è il meccanismo fondamentale per ottenerla.Indipendenza fisicaConsente di modificare l’organizzazione fisica dei dati mantenendo inalterata la loro struttura logica e riducendo l’impatto sulle applicazioni. La fonte richiama anche l’uso su piattaforme diverse e la distribuzione su più macchine.Indipendenza logicaConsente di modificare lo schema logico preservando, quando possibile, le viste esterne utilizzate dalle applicazioni. Permette inoltre di definire nuove viste senza cambiare la struttura logica sottostante.

Linguaggi DDL e DML

L’interazione con un DBMS comprende due categorie principali di linguaggi.

  • DDL, Data Definition Language: permette di definire gli schemi e le autorizzazioni di accesso.
  • DML, Data Manipulation Language: permette di interrogare e aggiornare i contenuti della base di dati.

Alcuni linguaggi, come SQL, comprendono funzionalità di entrambe le categorie.

Gli utenti di una base di dati

Una base di dati può essere utilizzata da figure con compiti e modalità operative differenti.

  • Amministratori della base di dati: si occupano di progettazione, controllo e manutenzione.
  • Progettisti e programmatori: realizzano i programmi che accedono alla base di dati. Amministratori e progettisti utilizzano normalmente il DDL anche per definire lo schema logico.
  • Utenti esperti: interrogano e aggiornano i dati con procedure variabili, utilizzando i linguaggi messi a disposizione dal DBMS.
  • Utenti finali: accedono frequentemente ai dati attraverso procedure predefinite.

Vantaggi e svantaggi dei DBMS

Vantaggi

  • Disponibilità dei dati per una comunità di utenti.
  • Rappresentazione unificata e precisa della realtà di interesse.
  • Controllo centralizzato dei dati.
  • Condivisione delle informazioni tra applicazioni e utenti.
  • Indipendenza dei dati.

Svantaggi

  • Costi e complessità, con investimenti in hardware, software e personale.
  • Un insieme ampio di servizi integrati, talvolta superiore alle esigenze dell’utente e difficile da ridurre alle sole funzioni necessarie.

Contenuto riorganizzato a partire dal documento fornito “BASE DI DATI”. Sono stati uniformati lessico e formattazione e chiariti alcuni passaggi: una relazione è un sottoinsieme del prodotto cartesiano; l’accorpamento delle entità in un’associazione 1:1 dipende dal caso; i valori degli attributi sono distinti dalle istanze delle entità.

info@giannimessina.it