EuraStudy
Appunti/Informatica/Basi di dati e modello relazionale
Appunti · InformaticaIT · Maturità

Basi di dati e modello relazionale

Una base di dati è una raccolta di dati strutturati, persistenti e condivisi, gestita da un software specializzato (il DBMS) che ne garantisce integrità, riservatezza e accesso concorrente. Questo appunto percorre l'intero ciclo di progettazione — dall'analisi della realtà di interesse al modello concettuale Entità-Relazione, fino alla sua traduzione nel modello logico relazionale di Codd e ai vincoli di integrità che ne assicurano la qualità. Si chiude con i principi essenziali della normalizzazione, strumento per eliminare le ridondanze e prevenire le anomalie di aggiornamento.

5 sezioni·~23 min di lettura·3 competenze·Livello Base 1 · Standard 2 · Approfondimento 2·Verificato · 07/2026

T·101010 / 14
Profilo d’esame
Progettare e gestire basi di dati per organizzare grandi insiemi di informazioniModellizzare la realtà di interesse con il modello E-R e tradurla nel modello relazionaleComprendere il ruolo dei vincoli di integrità nella qualità dei dati
Operatori:analizzadescriviprogettatraduciclassificagiustificaspiegaconfrontadetermina

livello base

È richiesto saper distinguere dato e informazione, leggere e costruire uno schema E-R semplice e tradurlo in tabelle con chiavi primarie ed esterne coerenti.

livello avanzato

Nel triennio del Liceo Scientifico — opzione Scienze Applicate si approfondiscono la traduzione sistematica delle associazioni (incluse le molti-a-molti), i vincoli di integrità referenziale con le relative politiche e i primi tre livelli di normalizzazione applicati a casi concreti.

Profondità

Profondità di lettura: Approfondimento

Testo

Dimensione del testo: Standard

Contenuti · 5 sezioni▾
  1. Basi di dati e modello relazionale
    • 01Dati, informazioni e sistemi di basi di dati○
    • 02Il modello concettuale Entità-Relazione◐
    • 03Il modello logico relazionale e le chiavi◐
    • 04Dal modello E-R al relazionale e l'integrità dei dati●
    • 05Cenni alla normalizzazione e alla progettazione●
§ 01

Dati, informazioni e sistemi di basi di dati#

●○○BaseLPOSA-informatica-BD-basi-di-dati

Architettura a tre livelli di una base di dati

Architettura a tre livelliGrafo, Utenti e applicazioni (viste) → DBMS (livello logico), DBMS (livello logico) → Dati fisici su discoUtenti eapplicazioni(viste)DBMS (livellologico)Dati fisici sudisco
Fig. 1I tre livelli: esterno (viste degli utenti), logico/concettuale (il DBMS) e interno (dati fisici su disco). Il DBMS realizza l’indipendenza dei dati.

Punti chiave

Prima di parlare di basi di dati occorre distinguere con precisione due concetti che il linguaggio comune confonde: il «dato» e l'«informazione». Un dato è un elemento grezzo, un simbolo o una misura privo di interpretazione (per esempio il numero «18» o la stringa «Rossi»); l'informazione è il significato che quel dato assume una volta inserito in un contesto e correlato ad altri dati (per esempio «lo studente Rossi ha riportato 18 nell'ultima verifica»). Una base di dati nasce proprio per organizzare grandi insiemi di dati in modo che da essi si possa estrarre informazione affidabile e tempestiva.
L'archiviazione tradizionale «a file» — in cui ogni applicazione gestisce i propri file in autonomia — mostra rapidamente i suoi limiti: la «ridondanza» (gli stessi dati replicati in più file), la conseguente «incoerenza» (copie che divergono dopo un aggiornamento parziale), la «dipendenza» tra programmi e formato fisico dei dati e la difficoltà di condividere i dati tra più utenti in sicurezza. Questi problemi storici motivano il passaggio a un'organizzazione centralizzata e governata da un software dedicato.
Il «DBMS» (Database Management System, sistema di gestione di basi di dati) è il software che si interpone tra gli utenti e i dati fisici memorizzati su disco. Esso offre un linguaggio per definire la struttura dei dati e uno per interrogarli e modificarli, garantendo al tempo stesso quattro servizi essenziali: il controllo della «ridondanza» e della coerenza, la gestione dell'«accesso concorrente» di più utenti, la «sicurezza» tramite profili e autorizzazioni, e l'«integrità» dei dati attraverso vincoli dichiarati una volta per tutte. Una proprietà centrale è l'«indipendenza dei dati»: le applicazioni non devono conoscere come i dati sono memorizzati fisicamente.
La progettazione di una base di dati procede per livelli successivi di astrazione, secondo lo schema classico in tre fasi (architettura ANSI/SPARC): si parte dalla «progettazione concettuale», che descrive la realtà di interesse in modo indipendente da qualunque tecnologia (tipicamente con il modello Entità-Relazione); si passa alla «progettazione logica», che traduce lo schema concettuale in un modello implementabile (per noi il modello relazionale); si conclude con la «progettazione fisica», che decide come i dati saranno effettivamente memorizzati. Tenere separati questi livelli è ciò che rende un progetto robusto e manutenibile.
Esempio svolto

Riconoscere i servizi di un DBMS

Una biblioteca tiene l'elenco dei libri in un file e l'elenco dei prestiti in un secondo file, ripetendo in entrambi titolo e autore di ogni libro. Spiega quali problemi emergono e quali funzioni del DBMS li risolvono.

  1. 01Individuare la ridondanza

    Titolo e autore sono memorizzati due volte (nei libri e nei prestiti): lo stesso dato è replicato, sprecando spazio e introducendo il rischio di copie diverse.

  2. 02Individuare l'incoerenza

    Se si corregge il titolo di un libro solo nel primo file, il file dei prestiti resta con il vecchio valore: i dati diventano incoerenti.

  3. 03Associare i servizi del DBMS

    Centralizzando i dati in un'unica base di dati, il titolo viene memorizzato una sola volta; il controllo della ridondanza e i vincoli di integrità garantiscono che ogni prestito faccia riferimento a un libro esistente.

Risultato: I problemi sono ridondanza e incoerenza; il DBMS li risolve centralizzando i dati, eliminando le copie e imponendo vincoli di integrità referenziale tra prestiti e libri.

Obiettivo Maturità

  • Focus Esame di Stato: saper definire con esattezza dato, informazione e DBMS e saper elencare i limiti dell'archiviazione a file che giustificano l'adozione di una base di dati.
  • Focus Esame di Stato: riconoscere e nominare le tre fasi della progettazione (concettuale, logica, fisica) e collocare correttamente in esse i modelli studiati (E-R nella concettuale, relazionale nella logica).

Errori frequenti

  • Usare «dato» e «informazione» come sinonimi: il dato è grezzo, l'informazione è il dato interpretato in un contesto.
  • Confondere la base di dati (l'insieme dei dati) con il DBMS (il software che la gestisce): sono due cose distinte.

Approfondimento

Il servizio più sottile che un DBMS offre è la gestione delle transazioni: una transazione è una sequenza di operazioni trattata come un'unità indivisibile, e deve rispettare le proprietà ACID. L'atomicità (Atomicity) impone che si esegua «tutto o niente»: un bonifico che addebita un conto e accredita l'altro non può fermarsi a metà, altrimenti il denaro sparirebbe. La coerenza (Consistency) assicura che ogni transazione porti la base di dati da uno stato valido a un altro valido, rispettando i vincoli. L'isolamento (Isolation) fa sì che transazioni concorrenti non si disturbino, come se ciascuna girasse da sola. La durabilità (Durability) garantisce che, una volta confermata (commit), la modifica sopravviva anche a un guasto, ottenuta con un giornale (log) — la stessa idea del journaling dei file system. Senza controllo della concorrenza comparirebbero anomalie classiche come l'aggiornamento perduto (lost update), in cui due utenti leggono lo stesso valore e lo sovrascrivono a vicenda; il DBMS lo previene con meccanismi di blocco (locking) sulle risorse. Su tutto veglia l'amministratore della base di dati (DBA). Vale infine la pena ribadire l'indipendenza dei dati resa possibile dall'architettura a tre livelli: si può cambiare l'organizzazione fisica su disco (indici, file) senza toccare lo schema logico, e modificare lo schema logico senza riscrivere tutte le applicazioni, purché le loro viste restino valide — la stessa astrazione a strati che governa reti e sistemi operativi.

Ripasso attivo

Una segreteria scolastica gestisce studenti, classi e voti con tre fogli di calcolo separati, ciascuno con il nome dello studente ripetuto. Individua almeno tre problemi di questa organizzazione e spiega quali servizi di un DBMS li risolverebbero.

Richiamo attivo

Ricorda i punti chiave — poi rivela.

Fonti: Indicazioni Nazionali per i Licei (DPR 89/2010, DM 211/2010) — Obiettivi Specifici di Apprendimento (Ministero dell'Istruzione e del Merito (MIM))

§ 02

Il modello concettuale Entità-Relazione#

●●○StandardLPOSA-informatica-BD-basi-di-dati

Schema E-R: Studente — si iscrive a — Corso (N:M)

Schema E-R (associazione N:M)Grafo, Studente → Si iscrive a, Si iscrive a → CorsoStudenteSi iscrive aCorsoNM
Fig. 2Associazione N:M «si iscrive a» (attributo: data) fra l’entità Studente (chiave: matricola) e l’entità Corso (chiave: codice).

Punti chiave

Il modello Entità-Relazione (E-R), introdotto da Peter Chen nel 1976, è lo strumento principe della progettazione concettuale: permette di descrivere la realtà di interesse con un linguaggio grafico astratto, indipendente da qualunque DBMS. I suoi costrutti fondamentali sono tre — l'entità, l'attributo e l'associazione (o relazione) — ai quali si aggiunge la nozione cruciale di cardinalità.
Un'«entità» rappresenta una classe di oggetti del mondo reale dotati di esistenza autonoma e di interesse per l'applicazione (per esempio Studente, Corso, Docente); si disegna con un rettangolo. Ogni occorrenza concreta di un'entità è una sua «istanza». Gli «attributi» sono le proprietà che descrivono un'entità (Nome, Data di nascita, Matricola) e si rappresentano con ellissi collegate al rettangolo; un attributo, o un insieme minimo di attributi, che identifica univocamente ogni istanza prende il nome di «identificatore» o chiave (lo si sottolinea o lo si annerisce nel disegno).
Un'«associazione» rappresenta un legame logico tra due (o più) entità: per esempio l'associazione «si iscrive a» tra Studente e Corso. Si disegna con un rombo che collega i rettangoli. Anche un'associazione può possedere attributi propri (per esempio la «data di iscrizione» del legame Studente–Corso): sono detti attributi dell'associazione perché non appartengono né all'una né all'altra entità ma al loro legame.
La «cardinalità» di un'associazione esprime quante istanze di un'entità possono essere coinvolte nel legame con l'altra. Si distinguono tre tipi fondamentali: «uno a uno» (1:1), in cui a ogni istanza dell'una corrisponde al più un'istanza dell'altra; «uno a molti» (1:N), il caso più frequente, in cui un'istanza dell'una si lega a molte istanze dell'altra ma non viceversa (per esempio una Classe contiene molti Studenti, ma ogni Studente appartiene a una sola Classe); «molti a molti» (N:M), in cui istanze di entrambe le parti si legano liberamente a più istanze dell'altra (Studente e Corso). Stabilire correttamente le cardinalità è il passo decisivo che governa la successiva traduzione in tabelle.
Esempio svolto

Dalla descrizione allo schema E-R

Una scuola di musica registra Allievi e Insegnanti. Ogni allievo segue le lezioni di un solo insegnante, mentre ogni insegnante segue molti allievi. Individua entità, identificatori, l'associazione e la sua cardinalità.

  1. 01Individuare le entità

    Le classi di oggetti con esistenza autonoma sono Allievo e Insegnante: due entità, due rettangoli.

  2. 02Scegliere gli identificatori

    Per Allievo un codice allievo univoco; per Insegnante un codice insegnante. Sono gli identificatori (chiavi) delle rispettive entità.

  3. 03Definire l'associazione e la cardinalità

    L'associazione «è seguito da» lega Allievo e Insegnante. Poiché ogni allievo ha un solo insegnante ma ogni insegnante ha molti allievi, dalla parte dell'Allievo la cardinalità è 1, dalla parte dell'Insegnante è N.

Risultato: Schema E-R con entità Allievo e Insegnante, associazione «è seguito da» di cardinalità 1:N (un insegnante → molti allievi; un allievo → un insegnante).

Obiettivo Maturità

  • Focus Esame di Stato: a partire da un testo descrittivo, individuare entità, attributi (con l'identificatore) e associazioni, disegnando uno schema E-R corretto e leggibile.
  • Focus Esame di Stato: assegnare e giustificare le cardinalità (1:1, 1:N, N:M) di ogni associazione, motivandole con frasi tratte dal testo del problema.

Errori frequenti

  • Modellare come entità ciò che è solo un attributo (per esempio creare un'entità «Indirizzo» quando basta un attributo dell'entità Studente).
  • Dimenticare gli attributi propri di un'associazione N:M (come la «data di iscrizione»), perdendo informazione essenziale nella traduzione.

Approfondimento

Il modello E-R è più espressivo dei tre soli costrutti base. Gli attributi si articolano in vari tipi: semplici o composti (un «indirizzo» scomponibile in via, città, CAP), a valore singolo o multivalore (i «recapiti telefonici» di una persona) e derivati (l'«età», calcolabile dalla data di nascita, che quindi non si memorizza). Esistono poi le entità deboli, prive di un identificatore proprio, che si identificano solo attraverso un'entità forte a cui sono legate da un'associazione identificante (per esempio un «familiare a carico» identificato dal dipendente più dal nome). La generalizzazione (o gerarchia ISA) permette di modellare che un'entità generale (Persona) si specializza in sottotipi (Studente, Docente) che ne ereditano gli attributi e ne aggiungono di propri — lo stesso rapporto «è-un» dell'ereditarietà nella programmazione a oggetti, qui applicato ai dati. Sulle cardinalità, la notazione min-max è più precisa del semplice 1:N: a ciascun lato dell'associazione si indicano la partecipazione minima e massima di un'istanza, distinguendo la partecipazione totale (minimo 1: ogni istanza deve partecipare, ogni studente DEVE appartenere a una classe) da quella parziale (minimo 0: la partecipazione è facoltativa). Cogliere questi vincoli nel testo del problema è ciò che rende lo schema concettuale davvero fedele alla realtà che deve rappresentare, prima ancora di tradurlo in tabelle.

Ripasso attivo

Una palestra registra i propri Soci, i Corsi offerti e le Iscrizioni dei soci ai corsi, con la data di iscrizione. Disegna lo schema E-R individuando entità, attributi, identificatori e la cardinalità dell'associazione, motivandola.

Richiamo attivo

Ricorda i punti chiave — poi rivela.

Fonti: Indicazioni Nazionali per i Licei (DPR 89/2010, DM 211/2010) — Obiettivi Specifici di Apprendimento (Ministero dell'Istruzione e del Merito (MIM))

§ 03

Il modello logico relazionale e le chiavi#

●●○StandardLPOSA-informatica-BD-basi-di-dati

Due tabelle collegate da chiave primaria e chiave esterna

Chiave primaria e chiave esternaGrafo, Voto (FK matricola) → Studente (PK matricola)Studente (PKmatricola)Voto (FKmatricola)FK → PK
Fig. 3La chiave esterna matricola di Voto riferisce la chiave primaria matricola di Studente. Studente(matricola, nome, cognome, classe); Voto(id_voto, matricola, materia, valutazione).

Punti chiave

Il modello relazionale, formulato da Edgar F. Codd nel 1970, organizza i dati in «relazioni», comunemente rappresentate come «tabelle». Una tabella è composta da righe e colonne: ogni colonna è un «attributo» (con un proprio dominio, cioè l'insieme dei valori ammessi), mentre ogni riga è una «tupla» (o record) che rappresenta una singola occorrenza, per esempio uno studente specifico. Lo «schema» di una relazione è l'elenco dei suoi attributi; l'«istanza» è l'insieme delle tuple presenti in un dato istante.
Una proprietà essenziale è che in una relazione, in senso formale, non vi sono tuple duplicate e l'ordine delle righe e delle colonne non ha significato: ciò che conta è il valore degli attributi. Per poter distinguere senza ambiguità ogni tupla serve quindi un meccanismo di identificazione: la chiave.
Una «chiave candidata» è un insieme minimo di attributi i cui valori identificano univocamente ogni tupla della relazione (minimo significa che togliendo un attributo si perde l'unicità). Tra le chiavi candidate il progettista ne sceglie una come «chiave primaria» (primary key): i suoi valori non possono mai ripetersi né essere nulli (vincolo di integrità dell'entità). Una «chiave esterna» (foreign key) è invece un attributo, o un gruppo di attributi, di una tabella che fa riferimento alla chiave primaria di un'altra (o della stessa) tabella: è il meccanismo con cui il modello relazionale rappresenta i legami tra tabelle.
Le chiavi esterne realizzano l'«integrità referenziale»: il valore di una chiave esterna deve corrispondere a un valore effettivamente presente come chiave primaria nella tabella riferita, oppure essere nullo se ammesso. È così che, per esempio, una tabella Iscrizioni può collegare ogni iscrizione a uno studente esistente e a un corso esistente, impedendo «iscrizioni fantasma» verso studenti o corsi inesistenti.
Esempio svolto

Individuare chiave primaria e chiave esterna

Considera REPARTO(cod_reparto, nome_reparto) e DIPENDENTE(matricola, cognome, cod_reparto). Determina la chiave primaria di ciascuna tabella e la chiave esterna, spiegando il vincolo che ne deriva.

  1. 01Chiave primaria di REPARTO

    cod_reparto identifica univocamente ogni reparto: è la chiave primaria (univoca, non nulla).

  2. 02Chiave primaria di DIPENDENTE

    matricola identifica univocamente ogni dipendente: è la chiave primaria di DIPENDENTE.

  3. 03Chiave esterna e vincolo

    cod_reparto in DIPENDENTE riferisce la chiave primaria di REPARTO: è una chiave esterna. Il vincolo di integrità referenziale impone che ogni dipendente sia assegnato a un cod_reparto realmente esistente in REPARTO.

Risultato: PK: REPARTO(cod_reparto), DIPENDENTE(matricola); FK: DIPENDENTE.cod_reparto → REPARTO.cod_reparto, con vincolo di integrità referenziale.

Obiettivo Maturità

  • Focus Esame di Stato: definire correttamente relazione, tupla, attributo, dominio e schema, e distinguere chiave candidata, chiave primaria e chiave esterna.
  • Focus Esame di Stato: data una o più tabelle, riconoscere o scegliere una chiave primaria valida (minimale, non nulla, univoca) e individuare le chiavi esterne che ne collegano i dati.

Errori frequenti

  • Scegliere come chiave primaria un attributo che può ripetersi o restare vuoto (per esempio il cognome): la chiave primaria deve essere univoca e non nulla.
  • Confondere chiave primaria e chiave esterna: la prima identifica le tuple della propria tabella, la seconda è un riferimento alla chiave primaria di un'altra tabella.

Approfondimento

Il modello relazionale non è solo un modo di disporre i dati in tabelle: è una teoria matematica, e su di essa poggia un'algebra relazionale che definisce le operazioni con cui interrogarle. Le operazioni fondamentali sono la selezione (σ), che estrae le righe che soddisfano una condizione; la proiezione (π), che estrae determinate colonne; il prodotto cartesiano e soprattutto la giunzione (join, ⋈), che combina due tabelle sulle righe con valori corrispondenti (tipicamente chiave esterna con chiave primaria); e le operazioni insiemistiche unione, differenza e intersezione, che trattano le relazioni come insiemi di tuple. Ogni interrogazione SQL che scriveremo si può ricondurre a una composizione di queste operazioni: è questo fondamento algebrico a garantire che le query abbiano un significato preciso e siano automaticamente ottimizzabili dal DBMS, che può riordinare le operazioni scegliendo il piano di esecuzione più efficiente. Un punto delicato è la semantica del valore nullo (NULL), che rappresenta un dato mancante o non applicabile: introduce una logica a tre valori (vero, falso, sconosciuto), per cui un confronto con NULL non restituisce «vero» né «falso» ma «sconosciuto», e va perciò gestito con operatori appositi (IS NULL). Comprendere che dietro le tabelle c'è un'algebra rigorosa è ciò che distingue chi «usa» un database da chi ne padroneggia i principi.

Ripasso attivo

Data la tabella STUDENTE(matricola, nome, cognome, classe) e la tabella VOTO(id_voto, matricola, materia, valutazione), indica per ciascuna tabella la chiave primaria e individua la chiave esterna, spiegando il vincolo di integrità che essa impone.

Richiamo attivo

Ricorda i punti chiave — poi rivela.

Fonti: Indicazioni Nazionali per i Licei (DPR 89/2010, DM 211/2010) — Obiettivi Specifici di Apprendimento (Ministero dell'Istruzione e del Merito (MIM))

§ 04

Dal modello E-R al relazionale e l'integrità dei dati#

●●●ApprofondimentoLPOSA-informatica-BD-basi-di-dati

Traduzione di un'associazione N:M con tabella ponte

Traduzione di un’associazione N:MGrafo, Iscrizione (ponte) → Studente (PK matricola), Iscrizione (ponte) → Corso (PK codice)Studente (PKmatricola)Corso (PKcodice)Iscrizione(ponte)FKFK
Fig. 4L’associazione N:M diventa la tabella ponte Iscrizione, con chiave primaria composta (matricola, codice_corso) — entrambe chiavi esterne — più l’attributo data.

Punti chiave

La traduzione da uno schema concettuale E-R a uno schema logico relazionale segue regole sistematiche, che è importante conoscere perché compaiono regolarmente nelle prove di indirizzo. La regola di base è semplice: ogni entità diventa una tabella, i cui attributi sono le colonne e il cui identificatore diventa la chiave primaria. Le associazioni, invece, si traducono in modo diverso a seconda della loro cardinalità.
Un'associazione «uno a molti» (1:N) non richiede una nuova tabella: si traduce aggiungendo nella tabella dal lato «molti» una chiave esterna che riferisce la chiave primaria della tabella dal lato «uno». Per esempio, l'associazione 1:N tra Classe e Studente si realizza inserendo in STUDENTE l'attributo cod_classe come chiave esterna verso CLASSE. Un'associazione «uno a uno» (1:1) si traduce in modo analogo, ponendo la chiave esterna in una delle due tabelle (di norma quella con partecipazione obbligatoria).
Un'associazione «molti a molti» (N:M) richiede invece una tabella aggiuntiva, detta «tabella ponte» o tabella associativa: la sua chiave primaria è composta dalle chiavi esterne che riferiscono le chiavi primarie delle due entità collegate, ed essa ospita anche gli eventuali attributi propri dell'associazione. Per esempio, l'associazione N:M tra Studente e Corso si traduce nella tabella ISCRIZIONE(matricola, codice_corso, data), in cui (matricola, codice_corso) è la chiave primaria e i due attributi sono ciascuno chiave esterna.
I «vincoli di integrità» garantiscono che la base di dati contenga solo dati corretti e coerenti. Si distinguono: i vincoli di «dominio» (un attributo assume solo valori del suo tipo e intervallo, per esempio un voto tra 0 e 10); il vincolo di «integrità dell'entità» (la chiave primaria è univoca e mai nulla); il vincolo di «integrità referenziale» (ogni chiave esterna riferisce un valore esistente). Per quest'ultimo si definiscono le politiche di reazione alla cancellazione o modifica del valore riferito, tipicamente CASCADE (propaga l'operazione), RESTRICT/NO ACTION (impedisce l'operazione) o SET NULL (annulla il riferimento).
Esempio svolto

Tradurre uno schema E-R nel relazionale

Traduci lo schema: AUTORE(cod_autore, nome) (1) — scrive — (N) LIBRO(isbn, titolo). Ogni libro ha un solo autore; un autore scrive molti libri.

  1. 01Tradurre le entità

    Ogni entità diventa una tabella: AUTORE(cod_autore, nome) con PK cod_autore; LIBRO(isbn, titolo) con PK isbn.

  2. 02Classificare l'associazione

    «scrive» è di cardinalità 1:N (un autore → molti libri; un libro → un autore): non serve una tabella ponte.

  3. 03Aggiungere la chiave esterna

    Si aggiunge nella tabella dal lato «molti», cioè LIBRO, l'attributo cod_autore come chiave esterna verso AUTORE.cod_autore.

Risultato: AUTORE(cod_autore PK, nome); LIBRO(isbn PK, titolo, cod_autore FK → AUTORE.cod_autore).

Obiettivo Maturità

  • Focus Esame di Stato: tradurre uno schema E-R completo in schema relazionale, applicando correttamente le tre regole (entità → tabella; 1:N → chiave esterna; N:M → tabella ponte).
  • Focus Esame di Stato: classificare e applicare i vincoli di integrità (dominio, entità, referenziale) e motivare la scelta di una politica referenziale (CASCADE / RESTRICT / SET NULL) in un caso concreto.

Errori frequenti

  • Creare una tabella ponte anche per un'associazione 1:N: in quel caso basta una chiave esterna nella tabella dal lato «molti».
  • Dimenticare di rendere chiave primaria composta la coppia di chiavi esterne nella tabella ponte di un'associazione N:M, permettendo così iscrizioni duplicate.

Approfondimento

Oltre alle tre regole di base, la traduzione deve saper gestire i costrutti più ricchi dell'E-R. Un attributo multivalore non può stare in una colonna, pena la violazione della 1FN: si estrae in una tabella separata, con una chiave esterna verso l'entità d'origine (i «telefoni» di un cliente diventano una tabella TELEFONO con la chiave del cliente). Un'entità debole diventa una tabella la cui chiave primaria è composta dalla chiave dell'entità forte identificante più il proprio identificatore parziale. La traduzione di una generalizzazione (gerarchia ISA) ammette invece tre strategie, da scegliere secondo il caso: accorpare tutto in un'unica tabella del genitore, con un attributo «tipo» e le colonne di tutti i sottotipi (semplice, ma con molti valori nulli); creare una tabella per ciascun sottotipo che include gli attributi ereditati (nessun nullo, ma dati del genitore ripetuti); oppure mantenere una tabella per il genitore e una per ciascun sottotipo, collegate da chiavi (la più normalizzata, al prezzo di join più frequenti). La scelta della politica referenziale, infine, va motivata caso per caso: CASCADE è adatto quando i dati figli non hanno senso senza il padre (le righe di un ordine spariscono con l'ordine), RESTRICT quando si vuole impedire una cancellazione che lascerebbe riferimenti orfani, SET NULL quando il legame è facoltativo. Padroneggiare questi casi meno banali è esattamente ciò che l'indirizzo Scienze Applicate richiede nelle prove di progettazione.

Ripasso attivo

È dato lo schema E-R: AUTORE (1) — scrive — (N) LIBRO, e LIBRO (N) — è prestato a — (M) LETTORE con attributo data_prestito. Traduci l'intero schema nel modello relazionale, indicando per ogni tabella chiave primaria e chiavi esterne.

Richiamo attivo

Ricorda i punti chiave — poi rivela.

Fonti: Indicazioni Nazionali per i Licei (DPR 89/2010, DM 211/2010) — Obiettivi Specifici di Apprendimento (Ministero dell'Istruzione e del Merito (MIM))

§ 05

Cenni alla normalizzazione e alla progettazione#

●●●ApprofondimentoLPOSA-informatica-BD-basi-di-dati

Dalla ridondanza alle forme normali

Dalla ridondanza alle forme normaliGrafo, Tabella con ridondanza → 1FN, 1FN → 2FN, 2FN → 3FNTabella conridondanza1FN2FN3FN
Fig. 5La ridondanza causa anomalie di inserimento, cancellazione e aggiornamento; la normalizzazione (1FN → 2FN → 3FN) le elimina progressivamente.

Punti chiave

La «normalizzazione» è il procedimento, dovuto a Codd, che migliora la qualità di uno schema relazionale eliminando le ridondanze e prevenendo le cosiddette «anomalie» di aggiornamento. Quando una stessa informazione è ripetuta in molte tuple si manifestano tre anomalie: l'anomalia di «inserimento» (non si può registrare un dato senza averne un altro non ancora disponibile), di «cancellazione» (eliminando una tupla si perde involontariamente anche un'altra informazione) e di «aggiornamento» (modificando un valore ripetuto bisogna correggerlo in molte righe, col rischio di incoerenze).
La «prima forma normale» (1FN) richiede che ogni attributo sia atomico, cioè contenga un singolo valore indivisibile, e che non vi siano gruppi ripetuti: una cella non può contenere una lista. Per esempio, una colonna «telefoni» che memorizza più numeri separati da virgola viola la 1FN; si risolve scomponendo il dato in tuple distinte o in una tabella separata.
La «seconda forma normale» (2FN) si applica quando la chiave primaria è composta: una relazione è in 2FN se è già in 1FN e ogni attributo non chiave dipende dall'INTERA chiave e non solo da una sua parte (si elimina la «dipendenza parziale»). La «terza forma normale» (3FN) richiede inoltre che nessun attributo non chiave dipenda da un altro attributo non chiave (si elimina la «dipendenza transitiva»): ogni attributo deve dipendere «dalla chiave, dall'intera chiave e da nient'altro che dalla chiave».
Nella pratica la progettazione cerca un equilibrio: si normalizza per garantire coerenza e ridurre la ridondanza, restando di norma fino alla 3FN, che nel triennio del Liceo è il livello di riferimento. La normalizzazione non è fine a sé stessa ma è lo strumento che traduce in regole verificabili l'obiettivo di una base di dati corretta, priva di duplicazioni dannose e facile da mantenere nel tempo.
Esempio svolto

Portare una tabella alla 3FN

La tabella ESAME(matricola, nome_studente, cod_corso, nome_corso, voto) ha chiave primaria (matricola, cod_corso). Individua le dipendenze anomale e scomponi la tabella fino alla 3FN.

  1. 01Verificare la 1FN

    Tutti gli attributi sono atomici (nessuna lista): la tabella è già in 1FN.

  2. 02Individuare le dipendenze parziali

    nome_studente dipende solo da matricola e nome_corso solo da cod_corso: sono dipendenze parziali dalla chiave composta, quindi la tabella NON è in 2FN.

  3. 03Scomporre per la 2FN

    Si separano: STUDENTE(matricola PK, nome_studente); CORSO(cod_corso PK, nome_corso); ESAME(matricola, cod_corso PK composta, voto). Ora ogni attributo non chiave dipende dall'intera chiave della propria tabella.

  4. 04Verificare la 3FN

    Nelle tre tabelle nessun attributo non chiave dipende da un altro attributo non chiave (nessuna dipendenza transitiva): lo schema è in 3FN.

Risultato: STUDENTE(matricola PK, nome_studente); CORSO(cod_corso PK, nome_corso); ESAME(matricola FK, cod_corso FK, voto) con PK (matricola, cod_corso): schema in 3FN.

Obiettivo Maturità

  • Focus Esame di Stato: riconoscere in una tabella le anomalie di inserimento, cancellazione e aggiornamento e collegarle alla ridondanza che le provoca.
  • Focus Esame di Stato: stabilire se una relazione è in 1FN, 2FN o 3FN e proporre la scomposizione (decomposizione) che la porta alla forma normale richiesta.

Errori frequenti

  • Considerare la 2FN solo quando la chiave è semplice: le dipendenze parziali — e quindi la 2FN — riguardano le chiavi primarie composte.
  • Pensare che normalizzare significhi sempre creare più tabelle possibili: l'obiettivo è eliminare ridondanze e anomalie, non frammentare a oltranza.

Approfondimento

Alla base della normalizzazione c'è il concetto di dipendenza funzionale: si scrive «X → Y» e si legge «X determina Y» quando, fissato il valore di X, il valore di Y è univocamente determinato (per esempio «matricola → nome_studente»). Le forme normali si definiscono proprio in termini di quali dipendenze sono ammesse. Vale la pena normalizzare un caso concreto. La tabella «ESAME(matricola, cod_corso, nome_studente, nome_corso, voto)» con chiave «(matricola, cod_corso)» è in 1FN (attributi atomici) ma non in 2FN, perché «nome_studente» dipende solo da «matricola» e «nome_corso» solo da «cod_corso»: sono dipendenze parziali dalla chiave composta. Si porta in 2FN scomponendola in «STUDENTE(matricola, nome_studente)», «CORSO(cod_corso, nome_corso)» ed «ESAME(matricola, cod_corso, voto)». Se comparisse un attributo come «dipartimento» dipendente da «nome_corso», a sua volta non chiave, si avrebbe una dipendenza transitiva, da eliminare per la 3FN spostandolo in un'altra tabella. La forma di Boyce-Codd (BCNF) è una versione più severa della 3FN, che richiede che ogni determinante sia una chiave. Attenzione però: normalizzare troppo moltiplica le tabelle e quindi i join, che costano; per questo, in sistemi con moltissime letture, si pratica talvolta una denormalizzazione controllata, reintroducendo consapevolmente una ridondanza per guadagnare in prestazioni — una scelta di ingegneria, non un errore, purché governata e documentata.

Ripasso attivo

Una tabella ESAME(matricola, nome_studente, cod_corso, nome_corso, voto) ha chiave primaria (matricola, cod_corso). Individua le dipendenze parziali e transitive, indica a quale forma normale si trova e scomponila fino alla 3FN.

Richiamo attivo

Ricorda i punti chiave — poi rivela.

Fonti: Indicazioni Nazionali per i Licei (DPR 89/2010, DM 211/2010) — Obiettivi Specifici di Apprendimento (Ministero dell'Istruzione e del Merito (MIM))

Contenuti

Sezione -- / 05

    • 01Dati, informazioni e sistemi di basi di dati○
    • 02Il modello concettuale Entità-Relazione◐
    • 03Il modello logico relazionale e le chiavi◐
    • 04Dal modello E-R al relazionale e l'integrità dei dati●
    • 05Cenni alla normalizzazione e alla progettazione●

0/5 Letti

Dagli appunti all'allenamento

Basi di dati e modello relazionale

Consolida questo argomento con domande dalla banca dati.

~23
min
3
Competenze
Esercitati

Riferimenti e fonti

Fonti

Ministero dell'Istruzione e del Merito (MIM)

  • Indicazioni Nazionali per i Licei (DPR 89/2010, DM 211/2010) — Obiettivi Specifici di Apprendimento

Argomento precedente

Struttura di Internet e servizi di rete

Argomento successivo

Linguaggi di interrogazione e manipolazione dei dati (SQL)

EuraStudy·Appunti T·10·MMXXVI

Continua con l'argomento successivo: il percorso viene conservato.