Programma
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
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
Implementazione degli operatori relazionali
- 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
Progettazione fisica di Basi di Dati
- Carico di lavoro, selezione degli indici
- Tuning delle prestazioni (indici, schema e interrogazioni)
Dati e indici multi-dimensionali (spaziali)
- Interrogazioni spaziali: range, k-nearest neighbor, join spaziali
- Indici per punti (k-D e k-D-B-tree, hB-tree, Grid file)
- Indici per oggetti estesi (R-tree)
- GiST
- Tecniche di trasformazione dello spazio
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 R-tree: interrogazioni di range, k nearest neighbor e distance browsing
- Interrogazioni Top-k di join: accessi sorted e random, funzioni di scoring. Algoritmi B0, FA, TA, CA e NRA
- L'approccio "ranked relations"
Interrogazioni Skyline
- Il concetto di dominazione e la relazione con le funzioni di scoring, definizione di Skyline
- Algoritmi senza indice (NL, BNL, SFS, SaLSa) e con indice (BBS)
Big Data e Sistemi NoSQL
- Definizioni e caratteristiche dei big data
- Sistemi per la memorizzazione di big data
Obiettivi
Conoscenza dei principi realizzativi dei Sistemi di Gestione di Basi di Dati. Capacità di progettazione di data base fisici.
Orario delle Lezioni
- Lunedì, 12-14, Aula 4.1
- Mercoledì, 15-18, Aula 5.4