85189 - SYSTEMS AND ALGORITHMS FOR DATA SCIENCE

Anno Accademico 2017/2018

  • Docente: Stefano Lodi
  • Crediti formativi: 10
  • SSD: ING-INF/05
  • Lingua di insegnamento: Inglese

Conoscenze e abilità da conseguire

By the end of the course the student is able to design information systems and applications on database management systems (DBMS). In particular, the student is able to use the SQL language to query and data, and to apply a database design methodology to user requirements in natural language; knows the fundamentals of data warehousing and big data management tools, like the MapReduce programming model, its Hadoop implementation, and NoSQL databases.

Contenuti

1 Basi di dati relazionali
══════════════════════════

• Il modello relazionale dei dati
• Vincoli di integrità
• Architettura di un DBMS


2 Il linguaggio SQL
═══════════════════

• Creazione, interrogazione e modifica di una base di dati
• Gestione delle transazioni e delle autorizzazioni


3 Progetto di basi di dati
══════════════════════════

• Progetto di basi di dati relazionali
• Progettazione concettuale Entity-Relationship
• Progettazione logica mediante conversione dello schema ER in schema
relazionale


4 Data warehousing e OLAP
═════════════════════════

• OLTP e OLAP
• Il modello dei dati multidimensionale: fatti, misure, dimensioni,
gerarchie, cuboidi
• Schemi a stella, a fiocco di neve, a galassia
• Operazioni nel modello multidimensionale: roll-up, drill-down, slice
and dice, pivot, data cube
• Data warehouse: definizione, progettazione, architettura

 

5 Analitica avanzata
════════════════════

5.1 Il processo di Knowledge Discovery in Databases
───────────────────────────────────────────────────


5.2 Algoritmo PageRank
──────────────────────


5.3 Scoperta di regole associative
──────────────────────────────────

• Classificazione delle regole associative
• Algoritmo Apriori
• Algoritmo FP-growth


5.4 Analisi dei gruppi
──────────────────────

• L'algoritmo a passo unico
• L'algoritmo BIRCH
• L'algoritmo k-means
• L'algoritmo EM


5.5 Classificazione supervisionata
──────────────────────────────────

• Alberi di classificazione: C4.5, CART
• K nearest neighbours
• Naive Bayes
• Modelli a vettori di supporto (SVM)
• AdaBoost


5.6 Strumenti per la gestione e l'analisi di Big Data
─────────────────────────────────────────────────────

• Il modello di programmazione MapReduce
• Implementazione Hadoop di MapReduce
• Il sistema Spark
• Le basi di dati NoSQL
• Il linguaggio Python
• Python, Hadoop e Spark
• Il linguaggio R e Hadoop


6 Esercitazioni di laboratorio
══════════════════════════════

• DBMS relazionale Microsoft SQL Server, linguaggio SQL
• Analitica avanzata


Testi/Bibliografia

Maier, D. (1983) The theory of relational databases. Rockville, MD: Computer Science Press.
Van der Lans, R. F. Introduction to SQL (any edition). Addison-Wesley.
Han, J., & Kamber, M. (2011). Data Mining. Concepts and Techniques. San Francisco, CA: Morgan Kaufmann.
Tan, P.-N., Steinbach, M., & Kumar, V. (2006). Introduction to Data Mining. Boston: Pearson.
Zhang, Y. (2015). An Introduction to Python and Computer Programming. Volume 353 of Lecture Notes in Electrical Engineering. Heidelberg: Springer. Disponibile come E-book (Cercare nel Catalogo del Polo Bolognese SEBINA YOU)

Metodi didattici

Le lezioni del corso sono suddivise in
• lezioni frontali tenute in aula, per al piú un terzo del numero di ore
del corso,
• lezioni tenute in laboratorio, per almeno due terzi del numero di ore
del corso, ciascuna comprendente sia esposizioni frontali che
esercitazioni sulle tecniche di progetto di basi di dati e di
soluzione dei problemi di interrogazione e di analisi dei dati
presentate nelle esposizioni.

Gli argomenti del corso sono suddivisi per tipo di lezione:
• Durante le lezioni frontali si espongono le nozioni teoriche e
pratiche per il progetto di interrogazioni, la gestione di basi di
dati, per il progetto di schemi di basi di dati e di data warehouse e
per l'analisi avanzata in basi di dati
• In laboratorio, lo studente è invitato a progettare interrogazioni SQL
e multidimensionali di difficoltà crescente e a verificarne la
correttezza con il DBMS in uso e a progettare la generazione di
modelli di analisi avanzata utilizzando sia strumenti integrati nei
DBMS che linguaggi di programmazione.

Modalità di verifica e valutazione dell'apprendimento

L'esame si articola in due prove:
• Prova di laboratorio preliminare di progetto di interrogazioni SQL e di programmi Python.
 • Lo studente riceve: un documento, cartaceo o digitale, contenente:
• la descrizione di uno schema di base di dati relazionale espressa
in statement CREATE TABLE del linguaggio SQL e interrogazioni
espresse in linguaggio naturale inerenti le relazioni dello schema
• la descrizione di un semplice problema di analisi
• Lo studente deve produrre
• interrogazioni in linguaggio SQL che restituiscono i dati
richiesti dalle interrogazioni in linguaggio naturale descritte
nel testo
• un programma Python che risolve il problema di analisi descritto
nel testo.
• Note: È facoltà del candidato consegnare la soluzione in forma
cartacea o in un documento digitale; fare uso di uno o piú sistemi
di gestione di basi di dati impiegati durante le lezioni del corso
per collaudare la propria soluzione.
• Prova orale. Il candidato deve rispondere a tre domande che possono riguardare qualunque parte del programma del corso. In particolare, lo studente deve dimostrare: padronanza delle nozioni teoriche della disciplina, della terminologia e del formalismo logico, insiemistico e matematico in essa impiegato; capacità di progettare porzioni di schema ER corrispondenti a casi notevoli dei requisiti di progetto in linguaggio naturale; padronanza nell'applicare le tecniche di progetto logico da schemi ER a schemi relazionali; conoscenza degli elementi di data warehousing e delle tecniche di analisi avanzata presentate durente le lezioni e implementati negli strumenti utilizzati durante le lezioni e capacità di utilizzare tali strumenti; conoscenza del linguaggio Python.

Modalità di calcolo del voto d'esame e vincoli tra le prove.

I voti delle due prove sono compresi nell'intervallo tra zero e trenta,
estremi inclusi. Il voto conseguito nella prova di laboratorio
preliminare è valido fino al termine della sessione nella quale la prova
preliminare è stata sostenuta. La valutazione dell'esito e
l'assegnazione del voto finale si effettuano al termine della prova
orale. Il voto finale è calcolato come media pesata dei voti conseguiti
nelle due prove, utilizzando per la prova di laboratorio preliminare il
voto valido piú recente, o zero se non esiste alcun voto valido. Ai fini
del calcolo si adottano i pesi seguenti:

Prova di laboratorio preliminare di progetto di interrogazioni SQL:
12/30

Prova orale: 18/30

Strumenti a supporto della didattica

  • Presentazioni degli argomenti del corso con videoproiettore
  • Laboratorio di PC con Microsoft SQL Server e Microsoft Access; PC del docente con videoproiettore per la guida alle esercitazioni
  • Materiale usato nelle presentazioni distribuito tramite il sito http://campus.unibo.it. Il materiale è accessibile solo agli studenti iscritti alla lista di distribuzione del corso. Le credenziali per l'iscrizione alla lista sono comunicate nella prima lezione del corso.


Orario di ricevimento

Consulta il sito web di Stefano Lodi