Guida aggiornata: settembre 2026 · a cura di Skooly · tutte le guide · altre domande di programmazione

Domande d'esame sulle basi di dati e SQL: le 12 che escono davvero, con le risposte

Su questo argomento il docente di solito ti chiede di passare dal modello concettuale al modello relazionale, e poi di dimostrare che sai interrogare e ragionare sui dati con SQL. Vuole vedere se conosci bene chiavi, vincoli, normalizzazione, transazioni e indici, cioè i meccanismi che garantiscono correttezza ed efficienza del database.

In due minuti: Una base di dati è una collezione organizzata di dati gestita da un DBMS, con l’obiettivo di ridurre la ridondanza e mantenere coerenza e integrità. Il modello entità-relazione serve a descrivere il dominio in modo concettuale, mentre il modello relazionale traduce quel modello in tabelle con chiavi primarie ed esterne. SQL è il linguaggio per definire e interrogare i dati: con SELECT, JOIN, GROUP BY e sottoquery esprimi query anche complesse. Le forme normali servono a eliminare anomalie di aggiornamento, e le transazioni con proprietà ACID garantiscono correttezza anche in presenza di concorrenza e guasti. Gli indici, infine, sono strutture ausiliarie che accelerano l’accesso ai dati a costo di spazio e di aggiornamento più oneroso.

I termini che il prof si aspetta: DBMS · schema · istanza · modello entità-relazione · entità · relazione · chiave primaria · chiave esterna · vincolo di integrità · normalizzazione · transazione · ACID · indice.

Le domande che escono all'esame

  1. Che cos’è una base di dati e che ruolo ha il DBMS?

    Una base di dati è una collezione organizzata di dati correlati, memorizzata in modo persistente e condivisa tra più applicazioni. Il DBMS è il software che la gestisce: si occupa di memorizzazione, interrogazione, sicurezza, concorrenza e recupero dai guasti. Il suo scopo è fornire indipendenza dei dati e garantire coerenza e integrità.

    Cosa vuole sentire: Vuole una definizione precisa di database e DBMS, non una descrizione generica di archivi. Errore tipico: Confondere il database con il programma applicativo o dire solo che è “un insieme di dati”.

  2. Qual è la differenza tra schema e istanza di una base di dati?

    Lo schema è la descrizione logica della struttura del database, quindi le tabelle, gli attributi, le chiavi e i vincoli. L’istanza è il contenuto attuale del database in un certo momento. Lo schema cambia raramente, mentre l’istanza cambia continuamente con inserimenti, cancellazioni e aggiornamenti.

    Cosa vuole sentire: Vuole che distingui struttura e contenuto con terminologia corretta. Errore tipico: Dire che schema e istanza sono sinonimi o usare “schema” per indicare i dati presenti.

  3. Come descrivi un modello entità-relazione?

    Il modello entità-relazione è un modello concettuale che rappresenta il dominio tramite entità, attributi e relazioni. Le entità corrispondono a oggetti del mondo reale, gli attributi alle loro proprietà e le relazioni ai legami tra entità. Serve nella progettazione concettuale prima della traduzione nel modello relazionale.

    Cosa vuole sentire: Vuole sentire gli elementi fondamentali del modello ER e il suo ruolo nella progettazione. Errore tipico: Dire solo che “serve a fare il diagramma” senza spiegare cosa rappresenta.

  4. Cosa sono chiave primaria e chiave esterna?

    La chiave primaria è l’insieme minimo di attributi che identifica univocamente una tupla in una relazione. La chiave esterna è un attributo, o insieme di attributi, che riferisce la chiave primaria di un’altra relazione e realizza un vincolo di integrità referenziale. La prima garantisce unicità, la seconda collegamento consistente tra tabelle.

    Cosa vuole sentire: Vuole il significato formale delle chiavi e il ruolo dei vincoli. Errore tipico: Dire che la chiave esterna è “una chiave di un’altra tabella” senza parlare di riferimento e integrità.

  5. Come si passa dal modello ER al modello relazionale?

    Il passaggio consiste nel tradurre entità e relazioni in tabelle, scegliendo chiavi primarie e introducendo chiavi esterne dove serve. Le relazioni uno-a-molti si traducono di solito con una chiave esterna nel lato molti, mentre le relazioni molti-a-molti richiedono una tabella di intersezione. Bisogna anche tradurre gli attributi multivalore o deboli secondo le regole del mapping relazionale.

    Cosa vuole sentire: Vuole vedere che conosci la traduzione concettuale-relazionale e i casi tipici. Errore tipico: Mettere una chiave esterna ovunque senza capire la cardinalità della relazione.

  6. Che cos’è SQL e quali sono le sue principali componenti?

    SQL è il linguaggio standard per definire, interrogare e modificare dati in un database relazionale. Include istruzioni di definizione dei dati, di manipolazione dei dati e di controllo dell’accesso, anche se all’esame di solito si insiste soprattutto sulla parte di interrogazione. La sua forza è che permette di esprimere query dichiarative, lasciando al DBMS il compito di ottimizzarle.

    Cosa vuole sentire: Vuole che tu collochi SQL come linguaggio dichiarativo per il modello relazionale. Errore tipico: Pensare che SQL sia un linguaggio procedurale come un linguaggio di programmazione classico.

  7. Come funziona una SELECT con JOIN?

    La SELECT estrae colonne e righe da una o più tabelle, mentre il JOIN combina tuple di tabelle diverse in base a una condizione di corrispondenza. Con un inner join ottieni solo le righe che soddisfano il match, mentre con i join esterni puoi preservare anche le righe senza corrispondenza. Serve per ricostruire informazioni distribuite su più relazioni.

    Cosa vuole sentire: Vuole che tu sappia spiegare il join come operazione di combinazione basata su una condizione. Errore tipico: Confondere il prodotto cartesiano con il join o non sapere la differenza tra inner e outer join.

  8. A cosa serve GROUP BY in SQL?

    GROUP BY serve a raggruppare le tuple con lo stesso valore su uno o più attributi, per poi applicare funzioni di aggregazione come conteggio, somma, media, minimo e massimo. Si usa quando vuoi ottenere risultati per gruppo, non per singola tupla. Se presenti condizioni sui gruppi, queste si esprimono con HAVING, non con WHERE.

    Cosa vuole sentire: Vuole che distingui raggruppamento e filtraggio dei gruppi. Errore tipico: Mettere in WHERE una condizione che riguarda un’aggregazione.

  9. Che cos’è una sottoquery e quando è utile?

    Una sottoquery è una query annidata dentro un’altra query, usata spesso per esprimere condizioni di esistenza, confronto con insiemi o selezioni intermedie. È utile quando il risultato di un’interrogazione serve come input di un’altra, oppure quando vuoi scrivere in modo più naturale certe condizioni logiche. In alcuni casi può essere riscritta con JOIN o con operatori insiemistici.

    Cosa vuole sentire: Vuole che tu capisca il ruolo logico delle sottoquery, non solo la sintassi. Errore tipico: Pensare che la sottoquery serva solo a “spezzare” una query lunga, senza capire il significato semantico.

  10. Che cos’è la normalizzazione e perché si usa?

    La normalizzazione è il processo con cui si riorganizzano le relazioni per ridurre ridondanza e anomalie di inserimento, cancellazione e aggiornamento. Si basa sulle dipendenze funzionali e sulle forme normali, che impongono una struttura più corretta del schema. In pratica serve a evitare che la stessa informazione sia duplicata in modo incoerente.

    Cosa vuole sentire: Vuole la motivazione teorica e pratica della normalizzazione. Errore tipico: Dire che normalizzare significa solo “dividere le tabelle” senza spiegare il criterio.

  11. Che cosa garantiscono le proprietà ACID di una transazione?

    ACID significa atomicità, consistenza, isolamento e durabilità. Atomicità vuol dire che la transazione si esegue tutta o per niente; consistenza che porta il database da uno stato valido a un altro stato valido; isolamento che le transazioni concorrenti non si interferiscano in modo scorretto; durabilità che, una volta confermata, la transazione resti persistente anche dopo un guasto. Sono le proprietà che rendono affidabile l’esecuzione concorrente.

    Cosa vuole sentire: Vuole una definizione rigorosa delle quattro proprietà e del loro senso. Errore tipico: Definire ACID in modo vago o confondere consistenza con coerenza dei dati in senso generico.

  12. Perché gli indici migliorano le prestazioni e qual è il loro costo?

    Un indice è una struttura ausiliaria che permette di trovare più rapidamente le tuple senza scandire tutta la tabella. Migliora soprattutto le operazioni di ricerca, join e ordinamento, ma richiede spazio aggiuntivo e rende più costose le operazioni di inserimento, cancellazione e aggiornamento. Quindi va scelto in base al carico di lavoro della base di dati.

    Cosa vuole sentire: Vuole il compromesso fondamentale tra lettura più veloce e scrittura più costosa. Errore tipico: Pensare che un indice sia sempre e solo un vantaggio, senza costi.

Fatti interrogare sulle basi di dati e SQL, come all'esame. Carica le tue dispense, le slide o le sbobine, scegli il livello università e Skoo ti fa queste domande a voce, con il rigore di un esame: ti incalza se sei vago e alla fine ti dà una pagella sui quattro criteri, con le frasi che hai detto. I primi 30 minuti sono gratis, senza carta. Simula l'esame sulle basi di dati e SQL

Le risposte vaghe che non passano

«Le chiavi servono a identificare i dati e le tabelle collegate tra loro.»
Meglio: La chiave primaria identifica univocamente una tupla, mentre la chiave esterna realizza un riferimento a una chiave primaria di un’altra relazione e impone integrità referenziale.
«GROUP BY si usa quando vuoi fare dei calcoli sui dati.»
Meglio: GROUP BY raggruppa le tuple su uno o più attributi e consente di applicare funzioni di aggregazione; le condizioni sui gruppi si esprimono con HAVING.
«Le transazioni servono per evitare errori nel database.»
Meglio: Le transazioni garantiscono atomicità, consistenza, isolamento e durabilità, cioè correttezza dell’esecuzione anche in presenza di concorrenza e guasti.

I collegamenti che fanno salire il voto

Come ti valuta la pagella sulle basi di dati e SQL

Un'interrogazione si valuta su quattro criteri. Ecco cosa fa la differenza in questo argomento:

CriterioCosa fa la differenza qui
Conoscenza dei contenutiFa la differenza sapere definizioni precise di schema, istanza, chiavi, vincoli, normalizzazione e ACID, senza confonderli tra loro.
Correttezza espositiva e lessico specificoPremia un discorso ordinato: prima modello concettuale, poi relazionale, poi SQL, poi qualità e prestazioni.
Capacità di analisi e collegamentiConta molto saper spiegare perché una scelta è corretta, ad esempio quando usare JOIN, GROUP BY, una sottoquery o un indice.
Autonomia nell'argomentareAlza il voto se sai applicare i concetti a un esempio nuovo, progettando lo schema e giustificando le query e i vincoli.

Domande frequenti

Da dove conviene partire se il docente mi chiede questo argomento?
Parti dal modello entità-relazione, poi passa alla traduzione nel modello relazionale e chiudi con SQL e vincoli.
Cosa ripassare se ho poco tempo?
Ripassa chiavi, JOIN, GROUP BY con HAVING, sottoquery, forme normali e le quattro proprietà ACID.
Come lo collego ad altri argomenti dell’esame?
Collegalo alla progettazione del software, alla concorrenza e alla gestione delle prestazioni tramite indici e ottimizzazione delle query.

Altre domande d'esame di programmazione

La complessità degli algoritmi · La programmazione a oggetti · La ricorsione · Le strutture dati · Variabili, tipi e controllo del flusso · tutti gli argomenti di programmazione

Come si prepara un orale universitario: simulare l'esame orale · Skooly per l'università.

Le domande e le risposte modello di questa pagina sono generate con l'intelligenza artificiale a partire dal programma scolastico, passate da una verifica automatica dei fatti e riviste a campione dalla redazione di Skooly (AI Act, Art. 50). Hai trovato un errore? Scrivi a supporto@skooly.it e lo correggiamo.