Università degli Studi di Napoli "Parthenope"

Scheda dell'insegnamento

Anno accademico: 
2021/2022
Tipologia di insegnamento: 
Caratterizzante
Tipo di attività: 
Obbligatorio
Corso di afferenza: 
Corso di Corso di Laurea Magistrale in INFORMATICA APPLICATA (MACHINE LEARNING E BIG DATA)
Settore disciplinare: 
INFORMATICA (INF/01)
Lingua: 
Inglese
Crediti: 
6
Anno di corso: 
1
Docenti: 
Ciclo: 
Secondo Semestre
Ore di attivita' frontale: 
48

Obiettivi

Il corso si propone di fornire le competenze essenziali per ottimizzare la gestione di una Base di Dati tramite un Database Management System di tipo relazionale e una visione generale di diverse tipologie di DBMS in modo da operare una scelta consapevole della tecnologia più adatta ad ogni caso d'uso.
La parte preponderante del corso riguarda la progettazione fisica, ovvero lo studio delle tecniche atte a migliorare le prestazioni di una base di dati relazionale esistente. Si presume che lo schema relazionale sia dato, e si illustra come sia possibile migliorare anche di ordini di grandezza il tempo di accesso ai dati in esso contenuti. Oltre questo, si presenta una panoramica su tecnologie non strettamente relazionali collegate al fenomeno dei Big Data e all'esplosione dei dati non strutturati, anche in ambiente distribuito, trattando vari sistemi Not Only SQL.
A fine corso, l’abilità principale acquisita sarà quella di leggere un piano d'esecuzione e di decidere se, quando e in che modo usare in un database relazionale le principali tecniche di ottimizzazione (indicizzazione, multidimensional clustering, range partitioning, viste materializzate, caching) o decidere una strategia di partizionamento dei dati (Sharding) in ambiente distribuito, ovvero tutto ciò che sta sotto l’ombrello del Database tuning. Sarà infine possibile per lo studente decidere quando è opportuno utilizzare una tecnologia alternativa e quale può essere più adeguata secondo la natura dei dati e le esigenze che ha di fronte.
Per superare l'esame è richiesto lo sviluppo di un progetto individuale, che partendo da un caso verosimile di Base di Dati reale, la doti di tutte le funzionalità avanzate trattate nelle lezioni e integri una parte di dati non strutturati, mettendo alla prova sia la capacità di astrazione, ragionamento e risoluzione di problemi, sia la capacità operativa su di un software complesso come il DBMS Oracle.
Conoscenza e capacità di comprensione:
Lo studente deve dimostrare di muoversi con autonomia nella gestione di Basi di Dati relazionali, immaginando ed implementando funzionalità evolute e padroneggiando il linguaggio PL/SQL. Deve inoltre dimostrare buona comprensione del funzionamento fondamentale e dei casi d'uso di sistemi non relazionali, siano essi chiave-valore, document store, colonnari o graph based.
Capacità di applicare conoscenza e comprensione:
Lo studente deve dimostrare di saper dotare una Base di Dati relazionale preesistente di funzionalità evolute e di saper dati non strutturati su sistemi poliglotti partendo da un Database Preesistente (tipicamente il DB sviluppato come progetto in BDI).
Abilità comunicative:
lo studente deve essere in grado di documentare opportunamente il database sviluppato come progetto, partendo dalla descrizione delle funzionalità aggiunte fino al codice PL/SQL, avvalendosi del linguaggio visuale UML e usando correttamente la terminologia propria delle Basi di Dati.

Prerequisiti

E' necessario avere acquisito i fondamenti delle Basi di Dati relazionali trasmessi dal primo corso sulle Basi di Dati nella laurea triennale, mentre è raccomandato avere una buona padronanza degli Algoritmi e Strutture Dati.

Contenuti

Il corso approfondisce la progettazione fisica delle Basi di Dati relazionali fornendo tutti gli elementi necessari per operare un tuning consapevole delle performance di una base di dati relazionale preesistente;
inoltre fornisce una ampia panoramica delle tecnologie alternative, anche in ambiente distribuito, per operare una scelta consapevole della soluzione di persistenza più adeguata per ciascun caso d'uso.

Metodi didattici

Lezione frontale alla lavagna ed esercitazioni pratiche. In particolare non si distribuiscono slide, ma si incoraggiano gli studenti a partecipare attivamente alle lezioni e a prendere appunti.

Verifica dell'apprendimento

Sono previste due prove infracorso per incoraggiare la partecipazione attiva alle lezioni. L'esame è in forma scritta e prevede il progetto tramite diagrammi di una soluzione integrata per la gestione dei dati in un dato scenario utilizzando varie tecnologie.

Testi

Principali riferimenti:
Shamkant B. Navathe Ramez A. Elmasri. Sistemi di Basi di Dati - Fondamenti e complementi. Pearson, 7^a edizione, 2018.
Tom Nadeau Sam Lightstone, Toby Teorey. Physical Database Design. Morgan Kaufmann, 2007.
Michael McLaughlin Scott Urman, Ron Hardman. PL/SQL programming. Oracle press, 2004.
Riferimenti per alcuni argomenti specifici:
Joe Celko. Joe Celko’s complete guide to NoSQL. Morgan Kaufmann, 1^a edizione, 2014.
Annalisa Franco Dario Maio, Stefano Rizzi. Esercizi di progettazione di Basi di Dati. Progetto Leonardo, 2^a edizione, 2005.
Tutte le vecchie lezioni di teoria sono fruibili in streaming (in italiano) come video in formato mov attraverso la piattaforma di e-learning del Dipartimento di Scienze e Tecnologie, dove è possibile trovare tracce d'esame e note per il laboratorio.

Altre informazioni

Ulteriori dettagli sono sulla piattaforma di e-learning.
http://e-scienzeetecnologie.uniparthenope.it/