- Docente: Marco Patella
- Crediti formativi: 8
- SSD: ING-INF/05
- Lingua di insegnamento: Italiano
- Moduli: Marco Patella (Modulo 1) Paolo Ciaccia (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Bologna
- Corso: Laurea Magistrale in Ingegneria informatica (cod. 0937)
Conoscenze e abilità da conseguire
Conoscenza dei principi realizzativi dei sistemi di gestione di basi di dati. Capacità di progettazione di data base fisici. Tecnologie per la gestione di big data.
Contenuti
L'allievo che accede a questo insegnamento conosce i modelli e degli strumenti per l'organizzazione e la gestione e il progetto di basi di dati relazionali. Tali conoscenze sono acquisite, di norma, superando l'esame di "Sistemi Informativi T" della laurea in Ingegneria Informatica.
- Architettura di un DBMS
Principali moduli e loro ruolo. - Il Data Base fisico
Gestione della memoria: dispositivi, pagine e file. Rappresentazione di attributi e tuple. Lettura e scrittura di pagine: il buffer manager. Tipi di file. Valutazione dei costi di alcune operazioni di base sui file. - Indici mono-dimensionali
Tipi di indici. Indici ad albero: Il B-tree e il B+-tree. Indici hash: hash statico, hash dinamico. - Dati e indici multi-dimensionali (spaziali)
Interrogazioni spaziali. Indici per punti (k-D e k-D-B-tree), indici per oggetti estesi (R-tree), GiST. - Implementazione degli operatori relazionali
Operatori logici e operatori fisici: sort (sort-merge esterno a Z vie), selezione (sequenziale, con indice, con più indici), proiezione (sort-based, hash-based, con indice), join (nested loops, block nested loops, merge scan, hash join), operatori insiemistici (unione e differenza), operatori di aggregazione. - Elaborazione di interrogazioni
Passi del processo di elaborazione. Check semantici e uso dei cataloghi. Riscrittura di interrogazioni SQL. Profili statistici: valori medi e istogrammi. Stima dei costi e della dimensione dei risultati. Piani di accesso: valutazione per materializzazione e in pipeline. Il processo di ottimizzazione: enumerazione dei piani di accesso e regole di dominazione. Determinazione del piano ottimale mediante programmazione dinamica. - Gestione delle transazioni
Controllo della concorrenza: tipi di problemi, lock e protocollo Strict 2PL. Protezione dai guasti: log file, protocollo WAL, gestione del buffer e del commit, checkpoint e DB dump. - Progettazione fisica di Basi di Dati
Carico di lavoro, selezione degli indici. Tuning delle prestazioni (indici, schema e interrogazioni). - Ranking dei risultati
Motivazioni e limiti delle soluzioni sinora viste per interrogazioni Top-k. Estensione di SQL per il ranking dei risultati.
Interrogazioni Top-k mono- e multi-dimensionali: spazio degli attributi, pesatura degli attributi, funzioni distanza, valutazione mediante B+-tree e suoi limiti.
Algoritmi basati su R-tree: k nearest neighbor e distance browsing. Interrogazioni Top-k di join: modalità di accesso sorted e random, funzioni di scoring, relazioni con le funzioni distanza. Algoritmi B0, FA, TA, CA e NRA. - Interrogazioni Skyline
Concetto di dominazione, relazione con le funzioni di scoring, algoritmi senza indice (NL, BNL, SFS, SaLSa) e con indice (BBS). - Big Data & NoSQL DBMS
Hadoop e il paradigma MapReduce. Modelli di dati alternativi al relazionale. Il teorema CAP.
Metodi didattici
Il corso viene erogato mediante proiezione di slide dal computer del docente, in aula.
Tutte le lezioni sono tenute in italiano. È quindi necessaria la comprensione della lingua italiana per seguire con profitto il corso. Il materiale didattico è comunque fornito in lingua inglese.
Modalità di verifica e valutazione dell'apprendimento
La verifica dell'apprendimento avviene attraverso un esame finale, che accerta l'acquisizione delle conoscenze e delle abilità attese tramite lo svolgimento di una prova orale con entrambi i docenti, da svolgersi in un'unica seduta. Il voto finale tiene conto della valutazione di entrambi i docenti. La data di svolgimento di tale prova va concordata con entrambi i docenti. In caso di appelli numerosi, è possibile venga richiesto lo svolgimento di una prova scritta con domande a risposta aperta.
Il superamento dell'esame sarà garantito agli studenti che dimostreranno padronanza e capacità operativa in relazione ai concetti chiave illustrati nell'insegnamento. Un punteggio più elevato sarà attribuito agli studenti che dimostreranno di aver compreso ed essere capaci di utilizzare tutti i contenuti dell'insegnamento, illustrandoli con capacità di linguaggio, e risolvendo problemi anche complessi non necessariamente incontrati a lezione. Il mancato superamento dell'esame potrà essere dovuto all'insufficiente conoscenza dei concetti chiave, alla mancata padronanza del linguaggio tecnico, alla mancata o insufficiente capacità di astrazione dei concetti.
Strumenti a supporto della didattica
Le lezioni in aula verranno svolte utilizzando lucidi, con il supporto della lavagna per lo svolgimento di esercizi.
Link ad altre eventuali informazioni
http://www-db.disi.unibo.it/courses/TBD/
Orario di ricevimento
Consulta il sito web di Marco Patella
Consulta il sito web di Paolo Ciaccia