201121 - BASI DI DATI ATTIVE

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.

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 ), 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. 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, il protocollo HTML.

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.
 
 

7. 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).
 
 
8. Data mining. La scoperta di conoscenza nelle basi di dati: definizione e problemi. Il processo della scoperta di conoscenza nelle nasi 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
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.