Premessa
Portale di appartenenza: Basi di dati.
Cosa troverai in questa nota:
- Unβintroduzione ai concetti di database e di DBMS.
- Il significato intrinseco dei termini dato e informazione e la loro differenza.
- Una presentazione dei vari tipi di modelli (concettuale, logico e fisico) con i quali si puΓ² progettare un database.
Prerequisiti: per comprendere pienamente il contenuto di questa nota, oltre le conoscenze minime che do per scontato che tu sappia giΓ , ti consiglio di aver letto in precedenza queste altre note:
Buona lettura! βοΈπ€
Viviamo in unβepoca in cui i dati sono diventati una risorsa fondamentale. Aziende, istituzioni e applicazioni personali devono archiviare e recuperare informazioni in modo efficiente per assicurare la loro operativitΓ . Si potrebbe addirittura dire che, in una societΓ come quella moderna, le informazioni sono diventate la nuova ricchezza: ecco perchΓ© ultimamente si parla di infocrazie. Proprio per questo, essendo pervasi da una mole incalcolabile di dati, se questi non sono organizzati correttamente, anche il sistema piΓΉ avanzato diventa inutilizzabile. Pensa a un motore di ricerca che impiega minuti per trovare una semplice pagina web o a una banca che perde traccia dei movimenti di un conto corrente.
Ecco perchΓ© esistono le basi di dati. Le basi di dati sono ovunque: ogni volta che prenoti un biglietto aereo, acquisti un prodotto online, guardi una serie in streaming o semplicemente invii un messaggio su WhatsApp, in realtΓ stai interagendo con una base di dati.
Diamo quindi una definizione formale di base di dati.
Definizione: base di dati
Una base di dati (in inglese database) Γ¨ una collezione strutturata di dati immagazzinati e accessibili per via elettronica, in grado di favorire la gestione dei dati in modo efficiente e sicuro.
Osservazione: uso del termine database
Nel linguaggio comune e informale, il termine database tende a essere utilizzato impropriamente con varie sfumature di significato, ma in realtΓ il database vero e proprio Γ¨ rappresentato solo dal sistema fisico e/o virtuale su cui vengono immagazzinati i dati (come un semplice file testuale, un file CSV o un foglio Excel).
1 - Differenza tra dato e informazione
Ma cosβΓ¨ esattamente unβinformazione? E cosa rappresenta invece il termine dato? Sebbene vengano usati spesso in maniera intercambiabile, i termini dato e informazione hanno significati ben distinti.
Definizione: dato
Un dato Γ¨ una rappresentazione elementare (numerica, testuale, visiva, ecc.) di un fenomeno della realtΓ che si vuole rappresentare. Γ grezzo e privo di significato di per sΓ© e senza un contesto o unβinterpretazione non ha valore informativo e non ci dice nulla.
I dati, perΓ², se aggregati, possono rappresentare unβinformazione.
Definizione: informazione
Unβinformazione Γ¨ il risultato dellβinterpretazione e della correlazione di uno o piΓΉ dati inquadrati in un determinato contesto.
Esempio di differenza tra dato e informazione
Immaginiamo di avere come dati la scritta
Mario Rossie il numero741scritti su un foglio di carta. Da soli, questi elementi non hanno un significato chiaro; tuttavia, se sappiamo che il foglio risponde alla domanda βchi Γ¨ il responsabile del Dipartimento di Informatica e qual Γ¨ la sua matricola?β, allora possiamo interpretare i dati e ottenere lβinformazione che Mario Rossi Γ¨ il responsabile del Dipartimento di Informatica e il suo numero di telefono Γ¨ 741.
In sintesi, i dati diventano informazioni quando vengono elaborati, contestualizzati e resi comprensibili per un determinato scopo.
2 - Il DBMS
Senza un DBMS, dovremmo gestire i dati manualmente con file di testo o fogli di calcolo, con tutti i problemi che ne derivano: ridondanza, inconsistenza, difficoltΓ di ricerca e modifiche complesse. Un DBMS risolve questi problemi offrendo:
- Organizzazione strutturata: i dati vengono archiviati in tabelle, documenti o grafi in modo ordinato e ben strutturato.
- Efficienza: i DBMS ottimizzano la memorizzazione e lβaccesso ai dati, riducendo i tempi di risposta.
- Sicurezza e controllo degli accessi: gli utenti possono avere permessi differenti per leggere o modificare i dati.
- Concorrente accesso ai dati: piΓΉ utenti possono lavorare sullo stesso database senza interferenze.
- IntegritΓ dei dati: il DBMS applica delle regole per evitare errori e duplicazioni.
- Backup e ripristino: protezione contro la perdita accidentale di dati.
Un concetto strettamente legato ai database Γ¨ il DBMS.
Definizione: DBMS
Il DBMS (DataBase Management System) Γ¨ il software necessario allβinterfacciamento con la base di dati, grazie al quale Γ¨ possibile crearla, gestirla e chiederle dati in modo efficiente e sicuro. Il suo compito Γ¨ fornire agli utenti e alle applicazioni unβinterfaccia comoda che eviti di dover gestire direttamente i dettagli interni di archiviazione e accesso ai dati.
Esempi di DBMS
Alcuni esempi di DBMS sono MySQL, MariaDB (nato dallo stesso creatore di MySQL dopo che questβultimo era stato acquisito dalla Sun Microsystems) e PostgreSQL.
Le operazioni effettuate su una base di dati per mezzo di un DBMS vengono dette interrogazioni.
Definizione: interrogazione
Le operazioni che si possono effettuare tramite unβinterrogazione a un database sono notate con lβacronimo CRUD.
Definizione: operazioni CRUD
Osservazione: differenza tra i termini aggiornamento e modifica
Nel contesto delle basi di dati, i termini aggiornamento e modifica sono spesso usati come sinonimi, ma tecnicamente cβΓ¨ una distinzione concettuale tra i due:
- Il termine aggiornamento indica unβoperazione che sostituisce un valore giΓ esistente con un nuovo valore e rappresenta lβoperazione di update nelle operazioni CRUD.
- Il termine modifica indica qualsiasi tipo di cambiamento ai dati nel database e si riferisce a quelle operazioni CRUD che alterano i dati (cioè create, update e delete).
Si puΓ² notare quindi come lβaggiornamento Γ¨ solo un caso particolare della modifica.
2.1 - Architettura ANSI/SPARC a tre livelli per DBMS (1975)
LβANSI/SPARC (acronimo di American National Standards Institute / Standards Planning And Requirements Committee), un ente statunitense per la standardizzazione, nel 1975 ha proposto e definito un modello a tre livelli per la progettazione e gestione dei database. Questa architettura Γ¨ stata sviluppata per separare la rappresentazione fisica dei dati dalla loro vista logica, migliorando cosΓ¬ flessibilitΓ , sicurezza e indipendenza dei dati.
I tre livelli dellβarchitettura sono:
- Livello interno (fisico): Γ¨ il livello piΓΉ basso e definisce come i dati sono effettivamente memorizzati nel sistema. A questo livello si definiscono la struttura dei file, gli indici, lβorganizzazione della memoria e le tecniche di accesso ai dati. Γ gestito direttamente dal DBMS e non Γ¨ visibile agli utenti finali o agli sviluppatori. Il suo obiettivo principale Γ¨ ottimizzare lo spazio di archiviazione e le prestazioni di accesso ai dati. Ad esempio, un database potrebbe essere memorizzato in file binari.
- Livello logico: rappresenta lβintera struttura del database indipendentemente dalla sua organizzazione fisica. A questo livello viene definito come i dati vengono organizzati in strutture dati per poter essere facilmente elaborati.
- Livello esterno: fornisce una rappresentazione personalizzata dei dati in base alle esigenze degli utenti o delle applicazioni. Ogni utente puΓ² avere una propria vista sui dati, che puΓ² includere solo alcune tabelle o campi, escludendo informazioni non necessarie o sensibili. Questo livello garantisce sia un accesso semplificato ai dati sia una maggiore sicurezza, poichΓ© gli utenti possono interagire solo con le informazioni a loro concesse. Ad esempio, un professore potrebbe accedere solo ai nomi e ai corsi degli studenti, senza visualizzare altre informazioni personali.
I principali vantaggi dellβarchitettura a tre livelli dei DBMS sono:
- Indipendenza fisica dei dati: le modifiche al livello fisico (ad esempio, il modo in cui i dati sono memorizzati) non influenzano il livello logico o le viste utente.
- Indipendenza logica dei dati: lo schema concettuale puΓ² essere modificato senza impattare le viste esterne degli utenti.
- Maggiore sicurezza: gli utenti vedono solo i dati a cui hanno accesso, grazie alle viste personalizzate.
- Maggiore flessibilitΓ : permette di adattare il database a diversi utenti senza modificare la struttura interna.
- Migliore gestione delle prestazioni: il livello fisico puΓ² essere ottimizzato senza modificare la logica del database.
- Separazione dei ruoli: sviluppatori, amministratori e utenti finali possono interagire con il database a livelli diversi senza interferenze.
3 - Progettazione e modellazione di una base di dati
Definizione: progettazione e modellazione di una base di dati
La progettazione di una base di dati Γ¨ un processo strutturato che ha come obiettivo finale la creazione di una base di dati attraverso la modellazione dei dati, ossia il processo di definizione della rappresentazione concreta che si vuole dare ai dati allβinterno dei database, con lβobiettivo di garantire una descrizione coerente, efficiente e scalabile anche delle informazioni.
Modellare i dati significa costruire una riproduzione semplificata della realtΓ osservata di un problema, individuandone gli elementi caratterizzanti e i legami intercorrenti tra essi. I modelli vengono divisi in tre categorie, ciascuno con un ruolo specifico nella progettazione e implementazione del sistema: modelli concettuali, modelli logici e modelli fisici.
Le tipiche fasi di una progettazione sono:
3.1 - Analisi dei requisiti
Definizione: analisi dei requisiti
Lβanalisi dei requisiti Γ¨ una delle fasi della progettazione di una base di dati in cui viene effettuato uno studio preliminare sul contenuto della base di dati attraverso lβindividuazione del tipo di dati che devono essere memorizzati, quali operazioni devono essere effettuate su di essi e quali regole devono essere rispettate allβinterno della base di dati.
Le principali fonti da cui attingere ciΓ² sono coloro che hanno interesse nella creazione della base di dati, chiamati stakeholder (in italiano letteralmente portatore di interessi), ossia verosimilmente:
- Utenti e committenti che hanno esposto le proprie intenzioni attraverso colloqui e documentazioni apposite.
- Documentazione giΓ disponibile, come norme giuridiche o regolamenti aziendali.
- Realizzazioni preesistenti di altre basi di dati da prendere come modello.
3.2 - Progettazione concettuale e modelli concettuali
Definizione: progettazione concettuale e modelli concettuali
La progettazione concettuale Γ¨ una delle fasi della progettazione di una base di dati in cui, attraverso lβuso di modelli concettuali, si ottiene una rappresentazione ad alto livello della struttura dei dati di un sistema, utilizzata nella fase iniziale della progettazione di un database per evitare errori nella fase di implementazione. Il suo scopo principale Γ¨ descrivere i dati in modo indipendente dalle scelte di implementazione e dal DBMS che verrΓ utilizzato attraverso uno schema ed un linguaggio piΓΉ simile e vicino allβuomo.
Il modello concettuale attualmente piΓΉ diffuso Γ¨ il modello E-R (EntitΓ -Relazione) che rappresenta i dati attraverso entitΓ (oggetti o concetti del mondo reale), attributi (proprietΓ o caratteristiche delle entitΓ ) e relazioni (associazioni tra entitΓ ).
Unβaltra valida alternativa Γ¨ il modello UML, usato per applicare il paradigma della programmazione orientata agli oggetti ai database tramite lβimplementazione di oggetti con un proprio stato e comportamento, delle classi che raggruppano gli oggetti con caratteristiche comuni e concetti di ereditarietΓ per il riutilizzo di strutture dati.
3.3 - Progettazione logica e modelli logici
Definizione: progettazione logica e modelli logici
La progettazione logica Γ¨ una delle fasi della progettazione di una base di dati in cui, attraverso lβuso di modelli logici, si ottiene una traduzione del modello concettuale in una struttura piΓΉ dettagliata, specifica per un determinato tipo di database.
In particolare, i dati rappresentati attraverso il modello concettuale E-R vengono tradotti nel modello logico relazionale βadattandoliβ al database di tipo relazionale tramite:
- La trasformazione delle relazioni in tabelle in cui le righe corrispondono alle istanze delle entitΓ e le colonne ai loro attributi.
- Lβaggiunta di chiavi primarie e chiavi esterne.
- Lβapplicazione dei concetti di normalizzazione, cioΓ¨ tecniche usate per ridurre la ridondanza dei dati e migliorare la coerenza delle informazioni.
Sebbene possano sembrare la stessa cosa, in realtΓ cβΓ¨ differenza tra i modelli concettuali e i modelli logici: mentre i primi sono usati per descrivere i dati in modo indipendente dalla loro implementazione nei DBMS, senza preoccuparsi di come i dati verranno archiviati o gestiti, i secondi definiscono la struttura dei dati in un formato piΓΉ dettagliato e specifico, preparandoli per lβeffettiva implementazione nel DBMS scelto.
Il modello relazionale Γ¨ stato proposto in ambito di ricerca allβinizio degli anni β70, ma ha ottenuto popolaritΓ solo a partire dagli anni β80, fino a divenire il modello piΓΉ diffuso al giorno dβoggi. Oltre al modello relazionale, sono stati definiti altri tipi di modelli, tra cui:
- Il modello a oggetti, che rappresenta la traduzione in modello logico del modello UML.
- Il modello gerarchico, basato sullβuso di strutture ad albero (e gerarchie, da cui il nome), definito durante la prima fase di sviluppo dei DBMS (negli anni β60), ma ancora utilizzato in molti sistemi, principalmente per motivi di continuitΓ .
- Il modello reticolare (noto anche come modello CODASYL, dal nome della Conference on Data Systems Languages che ne ha dato una definizione precisa), basato sullβuso di grafi, sviluppato nei primi anni β70.
3.4 - Progettazione fisica e modelli fisici
Definizione: progettazione fisica e modelli fisici
La progettazione fisica Γ¨ una delle fasi della progettazione di una base di dati in cui, attraverso lβuso di modelli fisici, si ottiene una registrazione concreta dei dati sulle memorie di massa, definendo modalitΓ e tecniche di archiviazione.
In questa fase di progettazione si stabiliscono dettagli come lβorganizzazione dei file, gli indici per velocizzare le ricerche e le strategie di allocazione dello spazio su disco. Questo livello Γ¨ gestito dal DBMS e influenza direttamente le prestazioni del database, per questo sono cruciali in questo caso lβinsieme di tecniche utilizzate per lβottimizzazione delle interrogazioni.
Osservazione: distinzione tra i 3 livelli di progettazione
Possiamo notare come con la progettazione concettuale ci occupiamo di studiare cosa rappresentare in una base di dati, mentre con la progettazione logica e fisica determiniamo come rappresentare i dati.
Approfondimento
Se vuoi saperne di piΓΉ:
Fonti:
- π« Lezioni e slide del Prof. Pensa Ruggero Gaetano del corso di Basi di Dati (canale B), Corso di Laurea in Informatica presso lβUniversitΓ di Torino, A.A. 2024-25:
- π« Lezioni e slide del Prof. Pensa Ruggero Gaetano del corso di Laboratorio di Basi di Dati (canale B, turno T1), Corso di Laurea in Informatica presso lβUniversitΓ di Torino, A.A. 2024-25:
- π« Appunti di Luca Barra del corso di Basi di Dati, Corso di Laurea in Informatica presso lβUniversitΓ di Torino, A.A. 2022-23 (caricati sul repository GitHub del Team Studentesco Informatica).