Funzioni di raggruppamento

✓Usare le funzioni aggregate COUNT, SUM, AVG, MIN, MAX su insiemi di righe
✓Raggruppare i risultati con GROUP BY per produrre statistiche per categoria
✓Filtrare i gruppi con HAVING e distinguere il suo ruolo rispetto a WHERE
✓Applicare correttamente l’ordine logico di esecuzione: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY

Comandi QL: la SELECT di base

✓Scrivere query SELECT complete con clausole WHERE, ORDER BY e LIMIT
✓Usare operatori di confronto, BETWEEN, IN, LIKE, IS NULL per filtrare le righe
✓Applicare alias di colonna e tabella e rimuovere i duplicati con DISTINCT
✓Implementare la paginazione con LIMIT e OFFSET su dataset reali

Algebra relazionale

✓Comprendere l’algebra relazionale come fondamento teorico del linguaggio SQL
✓Applicare le operazioni unarie (proiezione π e selezione σ) su insiemi di tuple
✓Applicare le operazioni binarie: prodotto cartesiano, join naturale, theta-join, equi-join
✓Tradurre espressioni di algebra relazionale in query SQL e viceversa

Comandi DML: manipolare i dati

✓Inserire record con INSERT INTO, sia in forma completa che abbreviata, anche con valori multipli
✓Aggiornare dati con UPDATE … SET … WHERE e comprendere il rischio di omettere la clausola WHERE
✓Eliminare righe con DELETE FROM … WHERE gestendo correttamente le Foreign Key
✓Utilizzare le transazioni (BEGIN, COMMIT, ROLLBACK) per garantire l’atomicità delle operazioni

Il linguaggio SQL: panoramica, server dei dati e DDL

✓Distinguere i principali DBMS e comprendere l’architettura client-server di un sistema di gestione dati
✓Conoscere le cinque categorie del linguaggio SQL (DDL, DML, QL, DCL, TCL) e i loro comandi principali
✓Saper creare tabelle con tipi di dato e vincoli corretti tramite CREATE TABLE
✓Modificare e rimuovere strutture di tabella con ALTER TABLE, DROP e TRUNCATE

Le forme normali

✓Comprendere perché la normalizzazione esiste e quali anomalie elimina
✓Verificare se una tabella soddisfa la 1NF, la 2NF e la 3NF
✓Normalizzare una tabella violata fino alla 3NF decomposto in tabelle separate
✓Distinguere dipendenza funzionale, dipendenza parziale e dipendenza transitiva

Dal modello concettuale al modello logico e integrità referenziale

✓Distinguere il modello concettuale (ER) dal modello logico (relazionale) e dal modello fisico
✓Applicare le regole di derivazione per tradurre un diagramma ER in tabelle relazionali
✓Comprendere il concetto di integrità referenziale e i comportamenti su UPDATE e DELETE
✓Saper svolgere per intero la derivazione di uno schema ER complesso (caso libro–autore)

Relazioni cardinalità e chiavi esterne

✓Riconoscere i tre tipi di relazione (1:1, 1:N, N:M) e saperli rappresentare in un diagramma ER
✓Comprendere il ruolo della chiave esterna (FK) e come collega due tabelle
✓Saper risolvere una relazione N:M tramite tabella di giunzione con attributi propri
✓Leggere e interpretare la notazione crow’s foot e la notazione min-max nei diagrammi

Modello relazionale e progettazione E/R

✓Descrivere il modello relazionale spiegando i concetti di relazione, tupla, attributo, dominio e le differenze rispetto al modello concettuale
✓Distinguere chiave primaria, chiave candidata e chiave esterna e spiegare i vincoli di integrità referenziale
✓Costruire un diagramma E/R identificando entità, attributi e relazioni con le relative cardinalità (1:1, 1:N, N:M)
✓Tradurre un diagramma E/R in schema relazionale applicando le regole di trasformazione per ciascuna cardinalità