Programma
Il corso introduce gli studenti ai concetti fondamentali dei sistemi di gestione di basi di dati (DBMS), affrontando sia gli aspetti teorici dei modelli dei dati, sia quelli pratici legati all’interrogazione e progettazione di basi di dati relazionali. Comprende moduli su modellazione concettuale, algebra relazionale, SQL e progettazione logica, alternando lezioni teoriche a esercitazioni pratiche.
Argomenti principali
- Introduzione al corso e concetti base: definizione di base di dati e di DBMS; nozioni su controllo di concorrenza e architettura dei sistemi di gestione.
- Modelli dei dati: focus sul modello relazionale, vincoli intrarelazionali e interrelazionali.
- Algebra Relazionale:
-- Operatori di base: unione, intersezione, differenza, prodotto cartesiano.
-- Operatori di selezione, proiezione e join (theta, equi, naturale).
-- Operatori avanzati: divisione e gestione dei valori null.
-- Esercitazioni dedicate sull’algebra relazionale.
- SQL (Structured Query Language):
-- Introduzione e forma base delle interrogazioni.
-- Operazioni di join espliciti, naturali ed esterni.
-- Aggregazione: funzioni di gruppo, GROUP BY, HAVING, operatori insiemistici.
-- DDL (Data Definition Language) e DML (Data Manipulation Language).
-- Interrogazioni nidificate.
-- Esercitazioni pratiche su SQL: installazione PostgreSQL, creazione database, viste, vincoli e asserzioni.
- Progettazione concettuale:
-- Entità, relazioni e attributi.
-- Generalizzazioni (ISA), aggregazioni e vincoli di cardinalità e identificazione.
-- Metodologie di progettazione e esercizi di modellazione concettuale.
- Progettazione logica:
-- Traduzione dello schema concettuale (ER) in uno schema relazionale.
-- Gestione delle ISA, vincoli e ridondanze.
-- Esercitazioni su ristrutturazione e traduzione dello schema.
- Chiusura corso: esercitazioni riepilogative e simulazioni di esami finali.
Prerequisiti
- Conoscenze di base di fondamenti di informatica
- Conoscenza di almeno un linguaggio di programmazione ad alto livello
- Nozioni introduttive di matematica discreta e logica
- Capacità di utilizzo di strumenti software su sistemi operativi desktop
Testi di riferimento
Slide disponibili sul sito del corso
R. Ramakrishnan, J. Gehrke. Sistemi di basi di dati. McGraw-Hill, 2004.
(facoltativo) P.Atzeni, S.Ceri, S.Paraboschi, R.Torlone. Basi di Dati. Modelli e Linguaggi di Interrogazione. McGraw-Hill, 2014.
Frequenza
La frequenza al corso non è obbligatoria, ma è fortemente consigliata per una migliore comprensione dei contenuti e un apprendimento più efficace. Gli studenti sono invitati a partecipare attivamente alle lezioni frontali e alle esercitazioni pratiche sempre tenute in aula.
Modalità di esame
La valutazione del corso si basa su prove scritte che combinano esercizi teorico-pratici e interrogazioni formali, volte a verificare la comprensione e l'applicazione dei concetti fondamentali trattati. Opzionale è l'orale, se richiesto dallo studente o dal docente.
Dettaglio della valutazione attraverso un esempio d'esame:
- Domanda 1 (10 punti): Progettazione dello schema Entity-Relationship (ER) di un'applicazione concreta, richiedendo la traduzione di specifiche testuali in un modello concettuale grafico con entità, relazioni e attributi.
- Domanda 2 (8 punti): Progettazione logica dello schema ER realizzato, enfatizzando la riduzione di valori nulli e la preparazione della base dati per una implementazione efficiente.
- Domanda 3 (3 + 4 + 4 punti): Scrittura di interrogazioni SQL complesse su uno schema relazionale dato.
- Domanda 4 (3 punti): Traduzione di un'interrogazione SQL in algebra relazionale, verificando la padronanza del linguaggio formale.
Questa modalità di valutazione richiede quindi allo studente di saper passare dalla teoria alla pratica, utilizzando sia modellazione concettuale che interrogazioni su dati relazionali.
Bibliografia
R. Ramakrishnan, J. Gehrke. Sistemi di basi di dati. McGraw-Hill, 2004.
(facoltativo) P.Atzeni, S.Ceri, S.Paraboschi, R.Torlone. Basi di Dati. Modelli e Linguaggi di Interrogazione. McGraw-Hill, 2014.
Modalità di erogazione
Il corso viene svolto attraverso un approccio misto che combina lezioni frontali teoriche con esercitazioni pratiche in laboratorio. La didattica si articola in diverse fasi:
- Lezioni frontali: Vengono trattati i concetti teorici fondamentali legati ai sistemi di gestione di basi di dati, ai modelli relazionali, all’algebra relazionale, al linguaggio SQL, e alle metodologie di progettazione a livello concettuale, logico e fisico. Tali lezioni sono integrate da esempi pratici svolti in aula.
- Esercitazioni pratiche: Durante le attività di laboratorio, gli studenti applicano le conoscenze teoriche realizzando modelli ER, scrivendo interrogazioni SQL e lavorando direttamente su DBMS come PostgreSQL o MySQL. Queste sessioni sono fondamentali per acquisire dimestichezza con la creazione, gestione, e interrogazione dei database.
- Attività autonome: Vengono proposti esercizi da svolgere individualmente o in gruppo, in modo da sviluppare autonomia nello studio e nella risoluzione di problemi concreti.
Questa impostazione didattica favorisce un apprendimento graduale che dall’acquisizione della teoria porta alla capacità di implementare e interrogare basi di dati reali in contesti simili a quelli professionali