84530 - TECNOLOGIE E SISTEMI PER LA GESTIONE DI BASI DI DATI E BIG DATA M

Anno Accademico 2020/2021

  • 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.

  1. Architettura di un DBMS
    Principali moduli e loro ruolo.
  2. 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.
  3. Indici mono-dimensionali
    Tipi di indici. Indici ad albero: Il B-tree e il B+-tree. Indici hash: hash statico, hash dinamico.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Progettazione fisica di Basi di Dati
    Carico di lavoro, selezione degli indici. Tuning delle prestazioni (indici, schema e interrogazioni).
  9. 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.
  10. Interrogazioni Skyline
    Concetto di dominazione, relazione con le funzioni di scoring, algoritmi senza indice (NL, BNL, SFS, SaLSa) e con indice (BBS).
  11. 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