Nome insegnamento: BASI DI DATI Articolazione in moduli: NO Settore Scientifico Disciplinare: ING-INF/05 Docente responsabile: Filippo Furfaro Crediti formativi universitari: 9 Numero ore lezioni: 57 Numero ore riservate attività didattiche assistite: 84 Numero ore esercitazioni: 27 Numero ore attività di laboratorio: Tipologia di attività formativa (TAF): attività caratterizzante Lingua di insegnamento: Italiano Anno di corso e Periodo didattico di erogazione: II ANNO, II SEMESTRE Insegnamento/i Propedeutico/i: Algoritmi, strutture dati Risultati d’apprendimento previsti e competenze da acquisire: Il corso presenta i concetti fondamentali delle basi di dati, con particolare riguardo ai modelli di rappresentazione delle informazioni, le metodologie di progettazione, ed i linguaggi di interrogazione. In particolare, il corso mira a fornire le seguenti competenze: - comprensione dell'architettura, delle funzionalità, e degli ambiti applicativi dei sistemi per la gestione delle basi di dati (DBMS); - capacità di progettare una base di dati secondo delle specifiche date; - capacità di interpretare il progetto di una base di dati già esistente; - capacità di interrogare una base di dati, per estrarre da esse informazioni di interesse; - comprensione dei concetti fondamentali relativi al funzionamento efficiente di un DBMS - comprensione delle caratteristiche fondamentali di modelli dati (quali il modello semistrutturato) diversi da quelli tradizionalmente usati nei DBMS, e dei linguaggi di manipolazione orientati a tali modelli - capacità di saper sfruttare le tecnologia dei database nella risoluzione di problematiche riguardanti la gestione dei dati Argomenti delle lezioni: 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. Metodologie e modelli per il progetto: Il ciclo di vita dei sistemi informativi. Metodologie di progettazione e basi di dati. Il modello Entità-Relazione: Entità, Relazioni, Cardinalità, Attributi, Gerarchie. Documentazione di schemi E-R. Il modello relazionale: Modello logico. Schema, istanza di una base di dati. Relazioni e tabelle, attributi. Informazione incompleta e valori nulli. Chiave, Superchiave. Vincoli di integrità (di dominio, di tupla). Vincoli di integrità' referenziale. La progettazione logica: 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. Algebra relazionale: Operatori insiemistici: 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. 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 integrità generici. Asserzioni. Viste. Cenni di Embedded SQL. La normalizzazione: Ridondanze e anomalie. Dipendenze funzionali. Terza Forma Normale. Forma normale di Boyce e Codd. Decomposizioni. Proprietà e Qualità delle decomposizioni. Progettazione di basi di dati e normalizzazione. Indicizzazione: Concetto di indice. Tecniche di hash. Hash statico e dinamico. Hash virtuale, estendibile, lineare. Indici B-tree e varianti. Gestione delle transazioni: Concetto di transazione: proprietà di atomicità, consistenza, isolamento, durabilità. Meccanismi per la gestione delle transazioni nelle basi di dati. Livelli di isolamento. Dati semistrutturati: Il linguaggio di rappresentazione XML. Definizione dello schema dei dati mediante DTD. Interrogazione di documenti XML: XPath ed XQuery. Argomenti delle esercitazioni: - Progettazione concettuale, logica e fisica di una base di dati - Interrogazione di una base di dati mediante algebra relazionale ed SQL - Definizione di indici opportuni a supporto di interrogazioni efficienti - Normalizzazione di uno schema relazionale - Definizione dello schema di un documento XML mediante DTD. - Interrogazioni di documenti XML mediante XPath ed XQuery. Modalità di erogazione della didattica: Lezioni frontali Metodi di valutazione: Prova scritta ed orale, entrambe obbligatorie. Criteri di valutazione dell’apprendimento: I criteri utilizzati consistono nella valutazione del livello di comprensione e delle capacità maturate nei seguenti ambiti: - Livello di comprensione dell'architettura, delle funzionalità, e degli ambiti applicativi dei sistemi per la gestione delle basi di dati (DBMS); - capacità di progettare una base di dati secondo delle specifiche date; - capacità di interpretare il progetto di una base di dati già esistente; - capacità di interrogare una base di dati, per estrarre da esse informazioni di interesse; - capacità di determinazione degli strumenti più adeguati per ottenere il funzionamento efficiente di un DBMS; - capacità di utilizzo di modelli dati (quali il modello semistrutturato) diversi da quelli tradizionalmente usati nei DBMS, e dei linguaggi di manipolazione orientati a tali modelli. Criteri di misurazione dell’apprendimento: voto finale Criteri di attribuzione del voto finale: Opportuna aggregazione delle valutazioni riportate nelle prove scritte ed orali Testi di riferimento e materiale didattico utilizzato e consigliato: P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di dati – Modelli e linguaggi di interrogazione, McGraw Hill. A. Albano, Costruire sistemi per basi di dati, Addison Wesley A. Silberschatz, H. F. Korth, S. Sudarshan, Database System concepts, McGraw Hill. J. D. Ullman, Principles of Database and Knowledge-Base Systems, Volume I. Computer Science Press Orario e aule lezioni: Calendario prove valutazione: http://www.dimes.unical.it/index.php/didattica