Prof. Donato Malerba
Obiettivi. Il corso presenta i concetti e le metodologie evolute per lo sviluppo di sistemi software orientati ai dati, nei quali le problematiche fondamentali riguardano l’organizzazione, la manipolazione, l’accesso ai dati, come pure l’estrazione di informazioni dai dati. Il corso si articola in due parti: basi di dati e data mining. Nella prima parte si presentano i fondamenti delle basi di dati relazionali (modello e linguaggi), la progettazione delle basi di dati (concettuale, logica e fisica) e alcune evoluzioni delle basi di dati (basi di dati attive e integrazione con il Web). Nella seconda parte si introduce il processo di scoperta di conoscenza nelle basi di dati e si illustrano alcuni metodi di data mining (induzione di alberi di decisione). Il data base relazionale di riferimento è Microsoft Access 97.
Prerequisiti: algoritmi e strutture dati, basi di dati e sistemi informativi.
Modalità d’esame: prova scritta sulla progettazione e interrogazione di una base di dati + prova orale consistente nella discussione della prova scritta e di un progetto svolto su argomento concordato con il docente (che va contattato con congruo anticipo rispetto agli appelli di esame).
Programma del corso a.a. 1998-99
1. Introduzione ai sistemi per basi di dati.
Calcolo relazionale: calcolo relazionale su domini, calcolo su tuple con dichiarazioni di range.
Algebra e calcolo con valori nulli
Viste.
SQL. Storia ed evoluzione. Interrogazioni semplici in SQL. Interrogazioni di tipo insiemistico. Interrogazioni con raggruppamento. SQL per definire e amministrare basi di dati: creazione di una base di dati, creazione di tabelle, definizione di domini, inserimento/cancellazione/modifica di tuple, vincoli d’integrità (intra-relazionali e inter-relazionali), modifica degli schemi, viste logiche, asserzioni, aspetti fisici (parametri fisici, definizioni di indici), cataloghi relazionali, controllo dell’accesso, strumenti per l’amministrazione di basi di dati. SQL per programmare le applicazioni: linguaggi che ospitano l’SQL, linguaggi con interfaccia API, linguaggi integrati (Oracle PL/SQL), la programmazione di transazioni (ripetizione esplicita delle transazioni, transazioni con livelli diversi di isolamento).
QBE: un linguaggio basato sulla grafica.
La progettazione concettuale: la raccolta e l’analisi dei requisiti, i criteri generali di rappresentazione, le strategie di progetto (top-down, bottom-up, inside-out, ibrida), qualità di uno schema concettuale, una metodologia generale.
La progettazione logica: analisi delle prestazioni su schemi E-R, ristrutturazione di schemi E-R (analisi delle ridondanze, eliminazione delle gerarchie, partizionamento/accorpamento di concetti, scelta degli identificatori principali), traduzione verso il modello relazionale (entità e associazioni molti a molti, associazioni uno a molti, entità con identificatore esterno, associazioni uno a uno, rappresentazione grafica delle traduzioni, traduzione di schemi complessi, tabelle riassuntive).
La normalizzazione: ridondanze e anomalie, dipendenze
funzionali, forma normale di Boyce e Codd, proprietà delle decomposizioni
(decomposizione senza perdita, conservazione delle dipendenze, qualità
delle decomposizioni ), progettazione di basi di dati e normalizzazione
(verifiche di normalizzazione su entità e associazioni, violazione
di forme normali e ristrutturazione di schemi concettuali).
L’accesso alle basi di dati: gateway e form, common gateway interface (CGI), CGI e gateway per basi di dati, l’interazione field-oriented, vantaggi e svantaggi dei DBMS Web, il servente universale.
Il Web e la basi di dati: differenze e convergenze.
P. Atzeni, S. Ceri, S. Paraboschi & R. Torlone
Basi di dati: concetti, linguaggi e architetture
McGraw-Hill Libri Italia, 1996.
Capitoli: 1, 2, 3 (escluso 3.15), 4, 5, 6, 7, 8, 12,
13, Appendice D.
A. Albano, G. Ghelli, R. Orsini
Basi di dati relazionali e a oggetti
Zanichelli, 1997
Capitoli: 1, 2, 5, 7, 8, 9, 13.3, 13.6, 15.4.1
U. Fayyad, G. Piatesky-Shapiro, P. Smyth. From data mining
to knowledge discovery: an overview.
In U. Fayyad, G. Piatesky-Shapiro, P. Smyth, R. Uthurusamy
(Eds.), Advances in Knowledge Discovery and Data Mining,
AAAI/MIT Press, pp. 1-35, 1996.
W.J. Frawley, G. Piatesky-Shapito, C.J. Matheus. Knowledge
discovery in databases.
In W.J. Frawley, G. Piatesky-Shapito, C.J. Matheus, Knowledge
discovery in databases,
AAAI/MIT Press, pp. 1-27, 1991.
Come testi di esercizi sulla progettazione di basi di dati si consigliano:
L. Cabibbo, R. Torlone, C. Batini
Basi di dati: Progetti ed esercizi svolti.
Pitagora editrice, Bologna, 1995.
C. Francalanci, F. Schreiber, L. Tanca
Progetto di dati e funzioni
Società Editrice Esculapio, Bologna, 1995.
I testi, gli articoli e le fotocopie delle trasparenze
distribuite durante le lezioni sono disponibili presso la Biblioteca del
Dipartimento di Informatica.