Quando la dimensione dei dati strutturati e non supera la capacità dei sistemi di gestione dati tradizionali, sono necessari nuovi strumenti e metodi per l'acquisizione, l'archiviazione e la gestione degli stessi. Tali enormi quantità di dati sono in genere memorizzati in ambienti distribuiti su larga scala, elaborate utilizzando specifici ambienti, e richiedere strumenti specifici per la loro gestione. In questo contesto, l'informazione semantica riveste un ruolo rilevante.
Poiché l'insegnamento viene tenuto in lingua inglese, si invita a visionare la scheda in inglese per ulteriori informazioni.
Learning the theoretical, methodological, and technological fundamentals of data management for advanced data processing architectures, with a specific reference to large-scale distributed environments, like key elements of NoSQL, basic issues in parallel and distributed query processing, and semantic data management.
Al termine del corso, lo studente/la studentessa sarà in grado di:
6 CFU
DESCRIVERE i principi della gestione dei dati nei sistemi distribuiti, gli ambienti per l’elaborazione di dati su larga scala e i sistemi per la gestione di dati su larga scala COMPRENDERE le differenze tra l'elaborazione e la gestione tradizionali dei dati e quelle su larga scala COMPRENDERE le differenze tra gli approcci presentati per la gestione di dati su larga scala SELEZIONARE il sistema e la metodologia per la gestione di dati su larga scala, adatti a un dato contesto applicativo UTILIZZARE alcuni dei sistemi presentati per la gestione di dati su larga scala per risolvere problemi semplici UTILIZZARE almeno uno dei sistemi presentati per la gestione di dati su larga scala per risolvere problemi non banali RISPONDERE a domande relative alla gestione di dati su larga scala RISOLVERE esercizi relativi alla progettazione dei dati in alcuni dei sistemi presentati e all’interazione con tali sistemi attraverso i linguaggi disponibili
9 CFU
COMPRENDERE le differenze tra l'elaborazione e la gestione tradizionali dei dati e quelle su larga scala COMPRENDERE le differenze tra gli approcci presentati per la gestione di dati su larga scala, inclusi quelli progettati per applicazioni guidate dall’intelligenza artificiale (IA) SELEZIONARE il sistema e la metodologia per la gestione di dati su larga scala, adatti a un dato contesto applicativo (inclusi quelli progettati per applicazioni guidate dall’IA) UTILIZZARE alcuni dei sistemi presentati per la gestione di dati su larga scala (inclusi quelli progettati per applicazioni guidate dall’IA) per risolvere problemi semplici UTILIZZARE almeno uno dei sistemi presentati per la gestione di dati su larga scala (inclusi quelli progettati per applicazioni guidate dall’IA) per risolvere problemi non banali RISPONDERE a domande relative alla gestione di dati su larga scala (incluse le problematiche relative a sistemi progettati per applicazioni guidate dall'IA) RISOLVERE esercizi relativi alla progettazione dei dati in alcuni dei sistemi presentati e all’interazione con tali sistemi attraverso i linguaggi disponibili
I prerequisiti corrispondono a nozioni di base sulla gestione dei dati nei sistemi tradizionali:
Modello dei dati, nozione di schema e istanza Modello concettuale dei dati Modello relazionale (modello logico) Progettazione concettuale Progettazione logica Basi della teoria della normalizzazione Algebra relazionale SQL Indici Transazioni
Per LM in Computer Science: Lezioni, laboratorio e progetto
Per LM in Computer Engineering: Lezioni, laboratorio e progetto
Ripasso sulle architetture distribuite su larga scala e sul calcolo data-intensive (solo 6 CFU)
Ripasso su big data e architetture distribuite Principi della gestione dei dati su larga scala Approcci architetturali per la gestione dei dati su larga scala Ripasso sugli ambienti per l’elaborazione di dati su larga scala (MapReduce, Spark) Sistemi per la gestione di dati su larga scala (6–9 CFU)
Introduzione ai sistemi NoSQL (6-9 CFU)
Modelli di dati NoSQL Archivi di tipo key-value Archivi basati su documenti Archivi a famiglie di colonne Archivi basati su grafi
Gestione dei dati per applicazioni guidate dall'IA (solo 9 CFU)
Problematiche relative alla gestione dei dati per applicazioni guidate dall'IA Modelli di dati, linguaggi e sistemi per applicazioni guidate dall'IA
Serge Abiteboul, Ioana Manolescu, Philippe Rigaux, Marie-Christine Rousset, Pierre Senellart. Web Data Management. Cambridge University Press, 2011. P.J. Sadalage, M.Fowler. Nosql Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison Wesley, 2013 Jeff Carpenter, Eben Hewitt, Cassandra: The Definitive Guide, O'Reilly Media, 2016 Ian Robinson, Jim Webber & Emil Eifrem. Graph Databases, New Opportunities for Connected Data, 2nd Edition, O’Reilly, 2015 Ulteriori riferimenti e materiali verranno forniti dai docenti.
Ricevimento: Su appuntamento, via email o Microsoft Teams Stanza: Valle Puggia – 327
Ricevimento: GIOVANNA GUERRINI: Su appuntamento, via email o Microsoft Teams Stanza: Valle Puggia – 301
BARBARA CATANIA (Presidente)
DANIELE D'AGOSTINO
GIOVANNA GUERRINI (Presidente Supplente)
In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica: https://corsi.unige.it/corsi/10852/studenti-orario
L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy
Esame scritto (verranno proposte un numero diverso di domande a seconda del numero di CFU); sviluppo di un progetto (obbligatorio); esame orale.
Durante il semestre verranno proposti alcuni assignment, da svolgere su uno dei sistemi presentati.
Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/10852/studenti-disabilita-dsa
I dettagli su come prepararsi all'esame e sul livello di conoscenza richiesto per ciascun argomento saranno forniti durante le lezioni.
L’esame scritto consiste in un insieme di domande aperte, chiuse ed esercizi su argomenti di base del corso: l’obiettivo delle domande aperte e chiuse è verificare la comprensione delle principali tematiche affrontate durante le lezioni, mentre gli esercizi mirano a valutare la capacità di selezionare il sistema adeguato per un determinato scenario e risolvere problemi semplici relativi alla modellazione dei dati e alle interrogazioni nei sistemi per la gestione di dati su larga scala.
Il progetto consiste nella progettazione e implementazione di un data store utilizzando uno dei sistemi presentati durante il corso; la presentazione dell’attività svolta serve a verificare la capacità di utilizzare almeno un sistema per la gestione di dati su larga scala per risolvere problemi non banali, nonché la capacità di comunicare (per iscritto) il risultato dell’attività in modo chiaro e completo.
L’esame orale consiste nella presentazione delle soluzioni sviluppate dallo studente per il progetto assegnato, al fine di valutare il livello di conoscenza raggiunto e la capacità di comunicare (oralmente) il risultato dell’attività in modo chiaro e completo.
Per gli studenti che non completano con successo gli assignment, l’esame orale includerà anche domande teoriche ed esercizi sugli argomenti dell'insegnamento, per valutare meglio la comprensione delle principali tematiche affrontate durante le lezioni.
Per ulteriori informazioni, consultare il modulo Aulaweb dell'insegnamento o contattare il docente.