70155 - BASI DI DATI

Scheda insegnamento

Anno Accademico 2017/2018

Conoscenze e abilità da conseguire

Al termine del corso, lo studente: - conosce il modello dei dati relazionale ed i principali costrutti del linguaggio SQL; - è in grado di progettare e realizzare una base di dati; - è capace di elaborare un progetto per la realizzazione di un sistema informatico.

Programma/Contenuti

Il programma del corso e' suddiviso in quattro parti, nelle quali si affrontano tematiche differenti ma complementari legate all'ambito delle basi di dati e dei sistemi informativi. Nella prima parte, vengono introdotti i concetti di base del corso (dato, informazione, base di dati, etc), le caratteristiche del modello relazionale e dei DBMS relazionali, e le principali funzionalita' del linguaggi per la specifica delle operazioni CRUD sui dati. A tal proposito, vengono illustrate in maniera dettagliata le caratteristiche del linguaggio SQL per la creazione, modifica ed interrogazione di basi di dati. Inoltre,vengono forniti cenni ad approcci alternativi al modello relazionale (database NoSQL), ed a tecnologie per la gestione dei big data. La seconda parte presenta metodologie e strumenti per la progettazione di basi di dati a partire dell'analisi dei requisiti di sistema. Vengono presentate in dettaglio le fasi tradizionalmente legate all'ingegneria del software per la progettazione dei dati, ossia analisi dei requisiti, progettazione concettuale, progettazione logica, progettazione fisica, analisi delle prestazioni dei modelli, tecniche di normalizzazione. La terza parte fornisce una (breve) panoramica su tecniche ed algoritmi di data-mining basati su metodi supervised ed unsupervised, per la creazione di modelli di classificazione e di predizione a partire dai dati contenuti in un database. Vengono forniti esempi di applicazioni di tali tecniche nell'ambito dell'estrazione ed analisi dei dati di social media (es. Twitter). Infine, la quarta parte introduce le caratteristiche principali dei sistemi informativi sul Web (WIS), e presenta alcune tecnologie utilizzate per lo sviluppo di applicazioni Web (PHP e/o .NET) in grado di interfacciarsi con database SQL.
Segue l'elenco sommario degli argomenti del corso:

Introduzione del corso: informazioni, dati e DBMS

 Modelli e Linguaggi per Basi di Dati

  • Il modello relazionale: concetti di base, vincoli di integrita' e chiavi
  • Caratteristiche dei Database Management Systems (DMBS) relazionali
  • Il linguaggio SQL: definizione dei dati, modifica dei dati, interrogazioni, definizione di viste, transazioni.
  • Approcci alternativi al modello relazionale, NoSQL (cenni) e tecnologie per i big data (cenni)

Progettazione di Basi di Dati

  • Progettazione concettuale: il modello E/R, raccolta ed analisi di requisiti, strategie di progettazione concettuale, verifica di qualita'.
  • Progettazione logica: ristrutturazione degli schemi E/R, traduzione nel modello relazionale, analisi di qualità di schemi E/R.
  • Tecniche di normalizzazione: forme normali (Boyce-Codd, terza forma normale), decomposizione in forma normale.
  • Progettazione fisica: indici e tecniche per la memorizzazione dei dati

Introduzione al data-mining

  • Cenni generali e scenari applicativi (es. social media) delle tecniche di data-mining
  • Algoritmi di classificazione e clustering

SQL per Applicazioni

  • Esempi di DBMS: MongoDB, MySQL.
  • SQL e Linguaggi di scripting server-side (PHP+MySQL e/o ASP.NET).
  • SQL e Java (JDBC, Hibernate)

Testi/Bibliografia

Il testo di riferimento del corso è il seguente:

- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone, "Basi di dati Modelli e linguaggi di interrogazione" 4/ed, 2009, ISBN: 9788838668005

Inoltre, è consigliata la lettura dei seguenti testi per lo svolgimento del progetto:

- Kevin Yank, "Sviluppare applicazioni con PHP e MySQL", 1/ed, 2012, ISBN: 9788850331826

Metodi didattici

Il corso prevede lezioni frontali svolte in aula, mediante l'ausilio di PC e proiettore da parte del docente.

Modalità di verifica dell'apprendimento

Il corso prevede un esame scritto (obbligatorio), un progetto (obbligatorio), ed una prova orale (facoltativa). La prova scritta ha una durata di 3 ore, non consente l' ausilio di libri o appunti, e richiede una pre-registrazione da parte dello studente attraverso il sito ALMA-ESAMI. La prova scritta è strutturata in esercizi corrispondenti alle diverse parti del corso, ed è volta ad accertare il raggiungimento degli obiettivi didattici, per quanto riguarda la conoscenza delle basi di dati basate sul modello relazionale, dei linguaggi di interrogazione, e della progettazione di sistemi informativi. L'esito della prova scritta, espressa in trentesimi, concorre a determinare i 2/3 del voto finale. Il progetto consiste nell'implementazione di un sistema informativo con interfaccia Web, ed è finalizzato a verificare l'acquisizione delle competenze nell'ambito della progettazione e dell'implementazione di basi di dati attraverso gli strumenti software, le tecnologie e le metodologie presentate in aula. Il progetto determina 1/3 del voto finale. Il docente fornisce la descrizione delle tracce del progetto (che possono essere anche proposte dagli studenti, previa discussione preliminare con il docente), delle modalità e delle tempistiche di consegna attraverso la pagina web del corso. La prova orale èfacoltativa, e prevede quesiti ed esercizi sugli argomenti del corso.

Strumenti a supporto della didattica

Il materiale didattico (slides, codice) presentato a lezione viene messo a disposizione dello studente attraverso la pagina web del corso: http://www.cs.unibo.it/~difelice/dbsi


La pagina contiene inoltre: link a strumenti software utilizzabili per lo svolgimento del progetto, e puntatori a sorgenti di informazioni (es. forum, riviste online) correlate agli argomenti del corso.

Orario di ricevimento

Consulta il sito web di Marco Di Felice