DATA MANAGEMENT

[339SM]
a.a. 2025/2026

2° Anno - Secondo Semestre

Frequenza Non obbligatoria

  • 6 CFU
  • 60 ore
  • INGLESE
  • Sede di Trieste
  • Opzionale
  • Convenzionale
  • Orale
  • SSD INF/01
Curricula: PERCORSO COMUNE
Syllabus

Conoscenza e comprensione: Conoscenza delle più recenti tecnologie per archiviare, manipolare, recuperare, trasformare grandi collezioni di dati sia nel tradizionale contesto relazionale che nell'ampio panorama delle proposte NoSQL. Comprendere i problemi complessi dell'archiviazione e del recupero di grandi raccolte di dati con particolare attenzione alla coerenza dei dati, al recupero efficiente, alla scalabilità, alla non omogeneità.
Conoscenza e comprensione applicate: capacità di scegliere il modello di dati appropriato, ottimizzare il livello di coerenza e disponibilità, scegliere la strategia di ottimizzazione appropriata in base ai vincoli di risorse e tempestività.
Autonomia di giudizio: capacità di valutare le funzionalità di diversi sistemi di gestione di database alternativi nell'ampio panorama delle proposte NoSQL contemporanee.
Abilità comunicative: capacità di presentare i risultati dell'analisi dei big data per il supporto decisionale, capacità di lavorare in gruppo.
Capacità di apprendimento: Capacità di affrontare la rapida evoluzione tecnologica dei sistemi Nosql apprendendo autonomamente le innovazioni tecnologiche.

Conoscenza elementare dei file systems. Conoscenza dei principi della programmazione. Lo studente sarà agevolato da una conoscenza
pregressa dei principi di base dei data base relazionali che saranno comunque ripercorsi nella parte iniziale del corso.

Il corso presenterà i tradizionali sistemi di gestione di database relazionali sottolineando le differenze con i paradigmi NoSQL recentemente proposti. Il corso ricapitolerà le funzionalità di base di un sistema relazionale transazionale (OLTP): i linguaggi di definizione dei dati, di manipolazione e di query; le le tecnologie standard (in particolare la gestione della concorrenza e l'ottimizzazione delle query). Quindi, si considereranno i sistemi OLAP il modello multidimensionale di dati e la sua implementazione ROLAP. Si approfondirà il problema di ottimizzazione per le query analitiche (uso di indici, frammentazione e materializzazione delle viste). I concetti saranno esemplificati nel DBMS PosgreSQL. Infine, compatibilmente con i limiti temporali del corso, si proporrà una panoramica delle scelte tecnologiche adottate nelle più recenti proposte NoSQL (in particolare, il DBMS documentale MongoDB e il DBMS con modello a grafo Neo4J).

For OLTP: Avi Silberschatz, Henry F. Korth, S. Sudarshan, Database System Concepts, 7th Edition, McGrawHill. For OLAP: M. Golfarelli, S. Rizzi, Datawarehouse Design, Modern Principles and methodologies, McGrawHill. For NoSQL: https://cassandra.apache.org/doc/latest/ https://www.mongodb.com/docs/manual/ https://neo4j.com/docs/

Riepilogo sui DBMS relazionali. Architettura e funzionalità di un Data Base Management System (DBMS) (centralizzato): linguaggi di definizione dei dati, linguaggi di manipolazione dei dati, linguaggio di definizione delle viste. DBMS transazionale. Il modello dati relazionale (schemi relazionali, relazioni, chiavi primarie ed esterne). Codifica di un modello dati concettuale in un modello relazionale. SQL per la definizione di dati e vincoli di consistenza in un DBMS relazionale (CREATE TABLE). SQL per la manipolazione dei dati (INSERT, DELETE, UPDATE) SQL per la creazione di viste e viste materializzate. SQL per la definizione di TRIGGERS. Tecnologie di un DBMS Relazionale (centralizzato). Transazioni, proprietà ACID delle transazioni. Tecnologie per l'isolamento delle transazioni: 2PL, Strict 2PL, Timestamping. Gestione del buffer. Sistema di controllo dell'affidabilità: organizzazione dei log, gestione delle transazioni, gestione dei guasti. Organizzazione fisica dei file: strutture heap, strutture sequenziali, strutture basate su hash. Modello dei costi e costo delle operazioni. Indicizzazione: B-tree e B+tree, indici invertiti, indici bitmap, indici hash, indici mutiattributo. Ottimizzazione delle query: selezione con indici e algoritmi di join (nested loop, index join, hash join, merge join) ottimizzazione basata sui costi. Introduzione ai DBMS analitici: OLTP contro OLAP. Il modello multidimensionale e le operazioni del modello multidimensionale. L'implementazione relazionale di un sistema OLAP (ROLAP). Tecniche di ottimizzazione delle interrogazioni analitiche: denormalizzazione, partizionamento orizzontale e verticale, materializzazione delle viste. Esemplificazioni nel DBMS PostgreSQL, frammentazione orizzontale per inheritance, estensione della clausola GROUP BY, uso delle variabili di stato per l'ottimizzazione. Introduzione ai paradigmi NoSQL. DBMS documentali (XML e JSON), DBMS a grafo. Casi di studio: MongoDB, Neo4J.

Lezioni frontali trasmesse sincronamente in remoto. Esercitazioni in classe. Esercitazioni per casa con correzione in classe. Lavoro di gruppo di progettazione.

I materiali del corso (Slides, esercizi, testi degli esami precedenti) sono recuperabili nella cartella condivisa del canale TEAM del corso.

La modalità di verifica prevede un esame scritto e la discussione di un progetto sviluppato in gruppo. L'esame scritto è composto da esercizi SQL (scrittura di comandi e query SQL) e da domande a risposta libera sulla parte delle tecnologie dei sistemi transazionale (OLTP) e analitici (OLAP) con particolare riguardo all'ottimizzazione delle interrogazioni. Gli esempi degli esercizi saranno presentati durante il corso ed esempi di testi di esame scritti saranno forniti durante il corso. Ad ogni esercizio è assegnato un punteggio massimo (per una somma totale di 32 punti). Il punteggio massimo è assegnato per la risoluzione corretta dell'esercizio. In presenza di errori il punteggio è ridotto conformemente alla gravità dell'errore. L'esame scritto è superato se il punteggio cumulato nei singoli esercizi è almeno 18. Si dà la possibilità di superare l'esame scritto in due parti distinte: 1) SQL e progettazione di Basi di dati relazionali; 2) Tecnologie dei DBMS. Il lavoro di progetto consiste nella ottimizzazione di un insieme di query su un benchmark di dati pubblici. Il progetto viene valutato rispetto: alla qualità e completezza della documentazione; alla appropriatezza delle tecniche adottate; ai risultati ottenuti. Il voto dell'esame è ottenuto mediando il voto dell'esame scritto ed il voto del progetto. La lode viene attribuita a chi ottiene il voto massimo in entrambe le parti.

Questo insegnamento approfondisce argomenti strettamente connessi a uno o più obiettivi dell’Agenda 2030 per lo Sviluppo Sostenibile delle Nazioni Unite

icona 4 icona  9