Corso di BASI DI DATI 1 Prof. Enrico Giunchiglia Ing. Marco De Luca Ingegneria Informatica Anno Accademico 2005/06 – Primo Semestre Orario delle lezioni: Dal 19/09/2005 al 16/12/2004, ogni Lunedì 11-13 (aula E4), Giovedì 10-12 (aula E4). Esercitazioni: Dal 26/09/2005 al 16/12/2005, ogni Venerdì 8-10 (aula E5) e 10-12 (aula INFAL1). Programma del corso: Il programma si articola nelle fasi di seguito dettagliate. Introduzione: Sistemi informativi, informazioni e dati. Basi di dati e sistemi di gestione di basi di dati. Modelli dei dati. Linguaggi e utenti delle basi di dati .Vantaggi e svantaggi dei DBMS Il modello relazionale: Modelli logico. Schema, istanza di una base di dati. Relazioni e tabelle, Attributi. Informazione incompleta e valori nulli. Chiave, Superchiave. Vincoli di integrita' (di dominio, di tupla). Vincoli di integrita' referenziale. Algebra relazionale: Operatori insiemistica: Unione, intersezione, differenza, prodotto. Ridenominazione. Selezione. Proiezione. Join. Interrogazioni in algebra relazionale. Equivalenza di espressioni algebriche. Algebra con valori nulli. Viste. Calcolo relazionale su attributi e su tuple. Datalog. SQL: Definizione dei dati in SQL (DDL). I domini elementari. Definizione di schema. Definizione delle tabelle. Definizione dei domini. Specifica di valori di default. Vincoli intrarelazionali. Vincoli interrelazionali. Modifica degli schemi. Interrogazioni in SQL. Interrogazioni semplici. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni nidificate. Manipolazione dei dati in SQL. Inserimento. Cancellazione. Modifica. Vincoli di integrita' generici. Asserzioni. Viste. Cenni di Embedded SQL. Metodologie e modelli per il progetto: Il ciclo di vita dei sistemi informativi. Metodologie di progettazione e basi di dati. Il modello Entita'-Relazione: Entità, Relazioni, Cardinalità, Attributi, Gerarchie. Documentazione di schemi E-R. La progettazione concettuale: La raccolta e l'analisi dei requisiti. Strategie di progetto: Strategia top-down, Strategia bottom-up, Strategia inside-out, Strategia mista. Qualita' di uno schema concettuale. Una metodologia generale. Esempi di progettazione concettuale. Strumenti CASE per la progettazione di basi di dati 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. Documentazione di schemi logici. Esempi di progettazione logica. Progettazione logica con gli strumenti CASE. La normalizzazione: Ridondanze e anomalie. Dipendenze funzionali. Terza Forma Normale. Forma normale di Boyce e Codd. Decomposizioni. Proprieta' e Qualità delle decomposizioni. Progettazione di basi di dati e normalizzazione. Utilizzo di Microsoft Access: Caratteristiche del sistema. La definizione delle tabelle. Specifica dei cammini di join. Popolamento delle tabelle. La definizione di query. L'interprete SQL. Maschere. Report. Testi consigliati: 1. Copia dei lucidi sul sito del corso. 2. P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone. Basi di dati: modelli e linguaggi di interrogazione. McGraw-Hill Italia, 2002 3. P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone. Basi di dati. McGraw-Hill Italia, 2002 Orario ricevimento: Con il docente, lunedì, dalle 14 alle 16, in Villa Bonino, Primo Piano. Sito Internet del corso: http://www.star.dist.unige.it/~enrico/BasiDiDati/ Date d'esame: Sono previste prove nei mesi di Gennaio, Febbraio, Giugno, Luglio, Settembre. Le date attualmente previste sono (le date elencate sono indicative. Consultare il sito internet del Corso in prossimità delle scadenze): Tipologia Data Ora Luogo Scritto 15 Giugno 2006 14.00-16.00 Aula E1 Orale 3 Luglio 14.00 Villa Bonino Scritto 5 Luglio 2006 9.30-11.30 Aula E1 Orale 12 Luglio 2006 Da definire Villa Bonino Scritto 13 Settembre 2006 14.00 Aula E1 Orale Da concordare 9.30 Villa Bonino Testo Risultati Risultati (1) Anno accademico precedente (2) Due turni: h.10:15-11:00 studenti dalla A alla G. h. 11:00-11:45 studenti dalla H alla Z (3) Voto massimo: 10,5 (4) Voto massimo: 19 (5) Si puo' fare lo scritto intero o la sola seconda parte. E' necessario iscriversi telematicamente cliccando qui, o tramite lo sportello studenti dell'Università. (6) E' necessario iscriversi entro fine Dicembre. I moduli per l'iscrizione sono al Padiglione E. Per eventuali domande, contattare l' Ing. Marco De Luca (e-mail: <nome><at>medservice.com). Modalità d'esame: L'esame si articola in una prova scritta e un orale che consiste nella discussione dello scritto e degli argomenti visti a lezione. E’ prevista una prova facoltativa sugli argomenti svolti durante le esercitazioni alla fine del corso. Tale prova verrà fatta una sola volta durante l’anno accademico, avrà un punteggio da -2 a 4 punti, da sommarsi al voto dello scritto. Il voto finale risulta dalla media dei voti dello scritto (espresso in trentesimi) e dell'orale. La parte scritta e la parte orale possono essere sostenute in un unico appello o in due diversi appelli ma di una stessa sessione. Risultati d'esame: Sul sito del corso. Copia delle Trasparenze: I lucidi sono in formato PDF si leggono e stampano con il prodotto Adobe Acrobat Reader, che puo' essere liberamente scaricato dal sito della Adobe. I lucidi presentati a lezione possono differire da quelli riportati qua sotto. 1. Basi di dati: introduzione 2. Modello relazionale (Esercizi del libro) 3. Algebra relazionale (Esercizi del libro) 4. SQL (Esercizi del libro) 5. SQL nei linguaggi di programmazione (Esercizi del libro) 6. Modello E-R (Esercizi del libro) 7. Progettazione concettuale (Esercizi del libro) 8. Progettazione logica (Esercizi del libro) 9. Normalizzazione (Esercizi del libro) Nota: la soluzione degli esercizi è proposta solo come traccia e non se garantisce la correttezza. Prove degli anni precedenti: Novembre 2003, Dicembre 2003, Gennaio 2004 1, Gennaio 2004 2, Febbraio 2004, Settembre 2004.