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.