Programma del corso di
201121 - BASI DI DATI E BASI DI CONOSCENZA
A.A. 2000/2001
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 architetture e paradigmi per l'analisi dei dati. 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, relazionali a oggetti, multimediali e integrazione con il Web). Nella seconda parte si introducono i concetti di data warehouse, OLAP e il processo di scoperta di conoscenza nelle basi di dati.
I data base relazionali di riferimento sono Oracle 8i e 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

1. Introduzione ai sistemi per basi di dati.

I sistemi organizzativi. I sistemi informativi per la produzione. I sistemi informatici: componenti ed evoluzioni. Requisiti di un sistema informatico complesso. Basi di dati e sistemi di gestione di basi di dati. I modelli dei dati. Livelli di astrazione nei DBMS. Linguaggi per data base. Interfacce per DBMS. Utenti della base di dati. Controllo della base di dati: integrità, affidabilità, sicurezza. Classificazione dei DBMS. I moduli di un DBMS. Vantaggi e problemi nell’uso dei DBMS. 2. I modelli dei dati. Aspetti della modellazione dei dati: ontologico, linguistico astratto, linguistico concreto, pragmatico. Il modello dei dati ad oggetti: rappresentazione delle strutture della conoscenza concreta, astratta e procedurale, rappresentazione della comunicazione. Altri modelli dei dati: gerarchico, reticolare, relazionale. 3. Basi di dati relazionali: modello e linguaggi. Relazioni e tabelle. Relazioni con attributi. Relazioni e basi di dati. Informazione incompleta e valori nulli. Vincoli d’integrità. Vincoli di tupla. Chiavi. Chiavi e valori nulli. Vincoli di integrità referenziale.
Algebra relazionale: operatori primitivi (unione, differenza, ridenominazione, selezione, proiezione, prodotto cartesiano), operatori derivati (intersezione, divisione, giunzione, giunzione naturale, giunzione esterna, semi-giunzione), altri operatori (complemento, funzioni di aggregazione, chiusura transitiva). Proprietà algebriche degli operatori relazionali.
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.
4. La progettazione di basi di dati. Metodologie e modelli per il progetto: il ciclo di vita dei sistemi informatici, una metodologia di progettazione per basi di dati, il modello entità-relazione (costrutti e documentazione degli schemi).
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), terza forma normale, progettazione di basi di dati e normalizzazione (verifiche di normalizzazione su entità e associazioni, violazione di forme normali e ristrutturazione di schemi concettuali).
5. Le basi di dati attive. Basi di dati e sistemi a produzione. Comportamento dei trigger in un sistema relazionale. Definizione e uso dei trigger in Oracle. Caratteristiche evolute delle regole attive. Proprietà delle regole attive (terminazione, confluenza e determinismo delle osservazioni). Problemi di progettazione e realizzazione di basi di dati attive. La metodologia IDEA. Applicazioni delle basi di dati attive. 6. Le basi di dati relazionali e a oggetti. Modelli dei dati non in prima forma normale. Il modello relazionale a oggetti. SQL-3: tuple e oggetti, gerarchie di tipo, tipi astratti, interrogazioni con flattening e nesting. Il manifesto delle basi di dati della terza generazione. Un DBMS relazionale a oggetti: Illustra. L’implementazione a oggetti di Oracle 8: tipi di dati astratti, collezioni, oggetti riga, viste oggetto. 7. Le basi di dati multimediali. I sistemi informatici multimediali. I dati multimediali. Gestione dei dati multimediali. Richiamo e precisione. I sistemi di recupero di informazioni testuali. Indicizzazione manuale e automatica. Creazione degli indici. Funzionalità e progetto di un IRS: il sistema WebClass. 8. Basi di dati e World Wide Web. Richiami su Internet e World Wide Web: nodi, indirizzi e protocolli, il World Wide Web, ancore e URL, HTML.
L’accesso alle basi di dati: accesso a database via common gateway interface (CGI), l’interazione field-oriented, vantaggi e svantaggi dei DBMS Web, il servente universale.
Il Web e la basi di dati: differenze e convergenze.
9. Il sistema Microsoft Access’97. Caratteristiche del sistema. Fondamenti: relazioni, schede, interrogazioni, rapporti, macroistruzioni e moduli. La creazione di un nuovo database. Tipi di dato per i campi di una tabella. Le relazioni (uno-a-uno, uno-a-molti, molti-a-molti). Integrità referenziale. Chiavi primarie e indici. Creazione di query di selezione (su singola tabella e su più tabelle), a campi incrociati, di comando e per parametri. Gli operatori e le espressioni in Access. Aggiornamento dei dati di tabella con le query. Query con funzioni di aggregazione. Access’97 e il WWW: collegamenti ipertestuali, esportazione di tabelle in formato HTML, uso dei modelli HTML di Access’97, importazione dei dati da tabelle HTML, creazione dinamica di pagine Web con l’Internet Database Connector (IDC). 10. Il DBMS Oracle 8. Gli strumenti di Oracle 8. Creazione di database in Oracle. La progettazione concettuale mediante Oracle Designer. Generazione del modello logico mediante Oracle Design Transformer. Generazione di form, di interrogazioni e di trigger mediante Oracle Developer. 11. Architetture e modelli per l'analisi dei dati. Dati operazionali e dati decisionali. Tecnologie di Business Intelligence. Sistemi di supporto alle decisioni (DSS), Executive Information Systems (EIS) e Management Informaiton Systems (MIS). Caratteristiche di un data warehouse. Architettura di un data warehouse. Schema del data warehouse: schema a stella e schema a fiocco di neve. OLAP e operazioni per l'analisi dei dati: drill down e roll up. ROLAP e MOLAP. 12. Scoperta di conoscenza nelle basi di dati. La scoperta di conoscenza nelle basi di dati: definizione e problemi. Il processo della scoperta di conoscenza nelle basi di dati: la selezione, il preprocessing, la trasformazione, il data mining, l’interpretazione e la valutazione dei risultati. Data mining: obiettivi, task, rappresentazione del modello, la valutazione del modello, i metodi di ricerca. L’induzione di alberi di decisione.
Principali testi e articoli di riferimento

P. Atzeni, S. Ceri, S. Paraboschi & R. Torlone
Basi di dati: concetti, linguaggi e architetture (2a edizione)
McGraw-Hill Libri Italia, 1999.
Capitoli: 1, 2, 3 (escluso 3.15), 4, 5, 6, 7, 8, 11.4-11.4, 12, 13, 14, Appendici A e D.

A. Albano, G. Ghelli, R. Orsini
Basi di dati relazionali e a oggetti
Zanichelli, 1997
Capitoli: 1, 2, 5, 7, 8, 9, 10, 11.1, 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.

T. Mitchell
Machine Learning
McGraw Hill, 1997.
Capitoli 1 e 3.

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.