Programma Del Corso Di
201121 - BASI DI DATI ATTIVE
A.A. 1999/2000
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, orientate 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. Quindi si illustrano alcuni metodi di data mining (induzione di alberi di decisione). 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 a.a. 1999-2000

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. 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. 3. Basi di dati relazionali: linguaggi. 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 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. Basi di dati a oggetti: tipi, classi, metodi, gerarchie di generalizzazione, persistenza, ridefinizioni dei metodi, ridefinizione con raffnamenti di tipo. Il manifesto delle basi di dati a oggetti. Standard ODMG per le basi di dati a oggetti: ODL e OQL. Un OODBMS: ObjectStore. 7. Modellazione orientata a oggetti in UML. Un modello concettuale di UML: Structural thing (classi, interfacce, collaborazioni, casi d’uso, classi attive, componenti, nodi); Behavioral thing (interazioni; state machine); Grouping thing (package); Annotational thing (note); Relationship: dipendenze; associazioni, generalizzazioni, realizzazioni; Diagram: diagramma delle classi, diagramma degli oggetti, diagramma dei casi d’uso, diagramma delle sequenza, diagramma delle collaborazioni, diagrammi statechart, diagrammi di attività, diagrammi dei componenti, diagramma di dispiegamento. Meccanismi comuni in UML: specifiche, ornamenti, estensioni (stereotipi, valori etichettati e vincoli). Le cinque viste: vista dei casi d’uso, vista di progetto, vista di implementazione, vista di processo, vista di dispiegamento. Il caso di studio della Eastern State University. 8. 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. 9. 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.
Architettura client-server. Architettura three-tier. JDBC. Servlets. Java Server Pages. Enterprise Java Beans.
10. 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). Creazione di Active Server Pages (ASP). 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: i tre problemi fondamentali (associazione delle classi alle foglie, scelta del test, criteri di stop). Il guadagno di informazione e il gain-ratio. Metodi di potatura degli alberi di decisione. Dagli alberi di decisione alle regole di produzione.
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, 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

G. Lausen, G. Vossen
Models and Languages of Object-Oriented Databases
Addison-Wesley, International Computer Science Series, 1997
Capitoli 1, 2, 3.

G. Booch, I. Jacobson, J. Rumbaugh
The Unifing Modeling Language: User Guide
Addison-Wesley, 1999
Capitoli 1, 2, 3

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.