INFORMAZIONI SU

Complementi di basi di dati

Programma dell'insegnamento di Complementi di basi di dati - Corso di laurea magistrale in Comunicazione Multimediale e tecnologie dell'Informazione (2012/13)

Docente

Prof. aggr. Nicola Vitacolonna nicola.vitacolonna@uniud.it

Crediti

6 CFU

Finalità

Il corso ha lo scopo di far acquisire allo studente una conoscenza approfondita delle teorie e delle tecniche per la progettazione logica e fisica di basi di dati relazionali. Il corso mira dunque a fornire solide basi teoriche sulla progettazione di basi di dati e adeguate competenze tecniche inerenti ad alcune funzionalità avanzate dei sistemi di gestione di basi di dati attuali. Ulteriore obiettivo è presentare un quadro dello stato dell'arte e delle più recenti tendenze nell'ambito della tecnologia delle basi di dati.
Alla fine del corso lo studente sarà in grado di gestire la progettazione di una base di dati in tutte le sue fasi, dall'analisi dei requisiti alla manutenzione; sarà in grado di valutare le prestazioni di una basi di dati e attuare misure di correzione, nonché di implementare correttamente le opportune politiche di sicurezza e privatezza dei dati; avrà inoltre assimilato i concetti e le metodologie fondamentali per lo sviluppo di sistemi distribuiti, di supporto alle decisioni e per l'analisi di dati spazio-temporali.

Programma

  • Teoria della normalizzazione: Teoria delle dipendenze funzionali basata sugli assiomi di Armstrong. Insiemi canonici di dipendenze funzionali. Algoritmi per il calcolo di chiusure di insiemi di attributi, per la verifica di equivalenza di insieme di dipendenze funzionali e per il calcolo di coperture canoniche. Forma normale di Boyce-Codd. Terza forma normale. Algoritmi per la decomposizione di schemi relazionali. Forme normali superiori: quarta e quinta forma normale, forma normale dominio-chiave. Estensioni della teoria delle dipendenze funzionali: sistemi formali in presenza di valori nulli; forme normali per dipendenze d'inclusione.
  • Tecniche avanzate di progettazione fisica: ottimizzazione d'interrogazioni. Manipolazione degli alberi d'interrogazione. Strategie di scelta delle procedure per le operazioni negli alberi d'interrogazione. Generazione dei piani d'esecuzione. Catalogo e statistiche della base di dati. Fattori di selettività. Stima dei costi. Algoritmi per il calcolo di una selezione. Algoritmi per il calcolo di un equi-join: nested-loop join, single-loop join, sort-merge join, hash-join. Caso di studio: analisi dei piani d'esecuzione in MySQL e PostgreSQL. Osservazioni sull'uso di chiavi surrogate e sul concetto di denormalizzazione. Altre tecniche di progettazione fisica: partizionamento dei dati e clustering multidimensionale.
  • Sicurezza: problematiche inerenti alla sicurezza nelle basi di dati e misure di controllo. Controllo degli accessi discrezionale (DAC). Controllo degli accessi vincolato (MAC). Controllo degli accessi basato sui ruoli (RBAC). Supporto di SQL alla sicurezza: istruzioni grant, revoke, create role. Audit trail. Caso di studio: sicurezza in MySQL, PostgreSQL e Oracle. Cenni al controllo d'inferenza nelle basi di dati statistiche.
  • SQL e linguaggi di programmazione: Approcci alla programmazione per basi di dati, le procedure memorizzate, i trigger, SQL embedded statico (interrogazioni semplici e complesse, l'utilizzo dei cursori) e dinamico (esecuzione immediata ed esecuzione in due fasi), l’utilizzo di librerie di funzioni: SQL/CLI (Call Level Interface), ODBC e JDBC (cenni). Basi di dati e applicazioni web.
  • Basi di dati per il supporto alle decisioni: peculiarità dei sistemi di supporto alle decisioni e tecniche di progettazione. Preparazione dei dati. Data warehouse e data mart. Schemi dimensionali: schemi a stella e schemi a fiocco di neve. Processamento analitico online (OLAP). Data mining. Supporto di SQL: opzioni grouping sets, rollup e cube per la clausola group by. Basi di dati multidimensionali.
  • Basi di dati distribuite: Elementi di base dell'architettura client-server, frammentazione dei dati, allocazione dei dati, livelli di trasparenza, tipi di sistemi di basi di dati distribuite, elaborazione delle interrogazioni in basi di dati distribuite, controllo della concorrenza e dell’affidabilità nelle basi di dati distribuite.
  • Basi di dati temporali e spaziali: Modelli dei dati temporali. Istanti e intervalli. Linguaggi d'interrogazione temporali. Modelli dei dati spaziali. SQL spaziale. Progettazione concettuale e logica di basi di dati spaziali. Metodi d'indicizzazione di dati spaziali.

Bibliografia

  • Ramez Elmasri e Shamkant Navathe, Fundamentals of Database Systems, sesta edizione, Addison-Wesley, 2010.
  • Chris Date, An Introduction to Database Systems, ottava edizione, Addison-Wesley, 2004.
  • Jeffrey D. Ullman, Principles of Database and Knowledge-Base Systems, Vol. 1, Computer Science Press, 1988.

Modalità d'esame

Prova orale.