Presentazione
Il Corso di Basi di Dati e di Conoscenza ha lo scopo di far acquisire allo studente una buona conoscenza dei principi che governano la progettazione di basi di dati e di conoscenza sia tradizionali sia più avanzati come database distribuiti e NoSQL ed interazione con applicativi. Il Corso propone i concetti basilari dell’algebra e del calcolo relazionale e li declina nello studio del modello Entità-Relazione e, più in generale, delle tematiche relative alla progettazione di basi di dati relazionali. Inoltre, obiettivo formativo del Corso è fornire allo studente una conoscenza nel dettaglio sul funzionamento dei sistemi di gestione delle basi di dati fondati sul linguaggio SQL (Standard Query Language) e l’impiego di quest’ultimo come linguaggio di definizione e manipolazione della base di dati.
Programma dettagliato
Introduzione alle basi di dati e modello relazionale dove sono affrontati i seguenti argomenti: Introduzione al corso; Basi di Dati e Sistemi di Gestione di Basi di Dati; Modelli dei Dati e Linguaggi delle Basi di Dati; Modello Relazionale dei Dati.
Progettazione concettuale e logica dove sono affrontati i seguenti argomenti: progettazione concettuale di una base dati; progettazione logica di una base dati
Esercitazione: Progettazione di un modello E-R a partire da un caso di studio
Algebra relazionale sintassi dell'algebra realazionale come linguaggio per la scrittura di Interrogazioni.
Calcolo relazionale sintassi del calcolo relazionale come linguaggio d’interrogazione.
Esercitazione: Progettazione concettuale e logica di una base dati a partire dal modello E-R derivante da un caso di studio, interrogazioni in algebra relazionale.
Linguaggio SQL ed introduzione alla progettazione dove sono affrontati i seguenti argomenti: introduzione al linguaggio SQL; caratteristiche evolute del SQL; SQL per le applicazioni; metodologie e modelli per la progettazione di una base dati.
Progettazione fisica e normalizzazione dove sono affrontati i seguenti argomenti: progettazione fisica di una base dati, normalizzazione.
Esercitazione: Progettazione fisica e normalizzazione di una base dati a partire dal progetto concettuale e logico derivante da un caso di studio.
Interrogazioni e transazioni dove sono affrontati i seguenti argomenti: organizzazione fisica e gestione delle interrogazioni; gestione delle transazioni.
Esercitazione sul linguaggio SQL: installazione del software DBMS, creazione e popolamento di un database, interrogazioni semplici ed annidate.
Sviluppo applicazioni dove sono affrontati i seguenti argomenti: metodi e librerie per lo sviluppo di applicazioni fondate su basi di dati.
Ottimizzazione delle prestazioni: Il processo di ottimizzazione delle query SQL, Tecniche di accesso ai dati dei DBMS relazionali, Tecniche di ottimizzazione, Interpretazione dei piani di esecuzione. Calcolo del costo di esecuzione per query SQL.
Basi di dati distribuite: Concetti di basi di dati distribuite, controllo della concorrenza e recovery delle base di dati distribuite. Architetture delle basi di dati distribuite.
Basi di dati NoSQL. Modelli dati non relazionali (Document-based, Graph-based, Column oriented). Architetture per DBMS non relazionali. Cluster, Sharding e persistenza. Modellazione dei dati in DBMS NoSQL.
Gestione dei Big Data. Trattamento di grandi quantità di dati. Map Reduce e Hadoop. Hadoop Distributed File System. Spark SQL.
Prerequisiti Lo studente deve aver sostenuto gli esami di
1. Matematica discreta.
2. Programmazione dei calcolatori con laboratorio.
Modalità d'esame
La prova d’esame consiste:
1. Realizzazione di un progetto (40%)
2. Prova scritta (40%)
3. Prova orale sul programma del corso. (20%)
Si potrà accedere alla prova orale solo previa consegna del progetto e una valutazione positiva dello scritto. I voti verranno assegnati in base a una valutazione complessiva delle conoscenze, competenze, capacità di presentazione e discussione delle tematiche trattate. I range di voti corrispondono possono essere descritti come segue:
18-23: preparazione e capacità di analisi sufficienti ma relative ad un numero limitato di argomenti affrontati nel corso, utilizzo di un linguaggio complessivamente corretto;
24-27: preparazione tecnicamente adeguata ma con alcuni limiti rispetto agli argomenti trattati, capacità di analisi buone, anche se non particolarmente articolate, espresse in un linguaggio corretto;
28-30: ottima conoscenza di un ampio numero di temi affrontati nel corso, buone capacità di analisi e di critica, padronanza della terminologia specifica;
30L: conoscenza eccellente e molto approfondita ed esaustiva dei temi affrontati nel corso, capacità di analisi critica e di collegamento, padronanza della terminologia specifica.
Testi di riferimento
Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di dati -Modelli e Linguaggi di interrogazione- ed. McGraw-Hill 4nd edition
Materiale del corso on-line Il materiale del corso è disponibile alla pagina del corso
Per informazioni o domande, è possibile scrivere per posta elettronica alla Prof.ssa Paola Vocca paola.vocca@uniroma2.it, oppure durante l’orario di ricevimento il lunedì dalle 11:00 alle 12:00 presso lo studio. |