Basi di dati
Docente
Indirizzo e-mail
angelo.montanari@uniud.it
Crediti
9 CFU
Finalità
Obiettivo fondamentale del corso è l’acquisizione dei concetti, delle metodologie e degli strumenti fondamentali nel campo delle basi di dati, con particolare attenzione ai modelli (concettuale, logico e fisico), ai linguaggi (di definizione, di interrogazione e di aggiornamento) e all’architettura dei sistemi per basi di dati. Vengono descritti in dettaglio i linguaggi per la definizione, l’interrogazione e l’aggiornamento dei dati (algebra relazione, calcolo relazionale, SQL). Vengono, inoltre, forniti elementi di progettazione concettuale (analisi e raccolta dei requisiti, costruzione di modelli Entità/Relazioni), logica (ristrutturazione di schemi concettuali, trasformazione di schemi concettuali in schemi logici, normalizzazione dei dati) e fisica (strutture di indicizzazione) di basi di dati. Infine, viene introdotta la nozione di transazione e vengono analizzate le componenti principali di un DBMS.
Dopo aver superato l’esame si ritiene che lo studente sia in grado di formalizzare in un linguaggio relazionale operazioni di definizione e manipolazione dei dati espresse in linguaggio naturale e di progettare semplici basi di dati a livello concettuale (costruzione di schemi Entità/Relazioni a partire da insiemi di requisiti espressi in linguaggio naturale), logico (trasformazione di schemi Entità/Relazioni in schemi relazionali, normalizzazione di schemi relazionali) e fisico (definizione degli opportuni indici).
Programma
Parte 1 - Concetti di base
Ruolo e funzionalità di una base di dati; astrazioni sui dati; modelli concettuali, logici e fisici dei dati; istanze e schemi; indipendenza logica e fisica dei dati; linguaggi per la definizione e la manipolazione dei dati; i sistemi per la gestione delle basi di dati (DBMS); amministratore e utenti di una base di dati; il dizionario dei dati; la struttura generale di una base di dati.
Parte 2 - Il modello Entità/Relazioni (ER)
Metodologie, tecniche e modelli per il progetto di una base di dati: il ciclo di vita dei sistemi informativi e le metodologie di progettazione di basi di dati; i costrutti di base del modello concettuale Entità/Relazioni (ER): tipi e istanze di entità e relazioni, attributi (semplici, composti, a singolo valore, a valore multiplo, opzionali, derivati) e chiavi (identificatori interni ed esterni, le nozioni di entità debole, entità proprietaria, chiave parziale e relazione identificante), dominio di un attributo e utilizzo dei NULL, vincoli associati alle relazioni (partecipazione e rapporto di cardinalità), relazioni ricorsive e ruoli, relazioni di grado superiore al secondo, i diagrammi ER; documentazione di schemi ER: tecniche di documentazione, regole aziendali (vincoli di integrità e regole di derivazione); costrutti avanzati del modello ER: specializzazioni e categorie. Modellazione dei dati in UML: i diagrammi delle classi (classi, associazioni, molteplicità, identificatori, generalizzazioni).
Parte 3 - Il modello relazionale
Nozioni di base, definizione delle relazioni, definizione dei vincoli sulle relazioni (che coinvolgono un'unica relazione o più relazioni), schemi e istanze di una base di dati relazionale, operazioni di aggiornamento delle relazioni, politiche di reazione alle violazioni dei vincoli.
Parte 4 - La progettazione delle basi di dati.
La progettazione concettuale dei dati: raccolta e analisi dei requisiti, criteri generali di rappresentazione, strategie di progetto, qualità di uno schema concettuale, strumenti CASE per la progettazione dei dati; la progettazione logica dei dati: analisi delle prestazioni su schemi ER, ristrutturazione di schemi ER (analisi delle ridondanze, eliminazione delle gerarchie, partizionamento/accorpamento di entità e/o relazioni, scelta degli identificatori principali), traduzione del modello ER nel modello relazionale; cenni alla teoria della progettazione delle basi di dati relazionali: dipendenze funzionali, ragionamento sulle dipendenze funzionali, scomposizione di relazioni, scomposizioni lossless-join, scomposizioni che conservano le dipendenze, forme normali per gli schemi di relazione (1NF, 2NF, 3NF e BCNF), scomposizioni in 3NF che conservano le dipendenze.
Parte 5 - L'algebra relazionale e il calcolo relazionale
L'algebra relazionale: le operazioni di base, interrogazioni in algebra relazionale, operazioni derivate, operazioni addizionali, ottimizzazione algebrica, i limiti dell'algebra relazionale; il calcolo relazionale: nozioni di base, calcolo relazionale su domini, calcolo relazionale su tuple con dichiarazioni di range, confronto tra il calcolo relazionale su domini e il calcolo relazione su tuple con dichiarazione di range, il legame tra calcolo relazionale e algebra relazionale.
Parte 6 - Il linguaggio SQL
La definizione dei dati in SQL; interrogazioni in SQL; istruzioni di aggiornamento in SQL; altre definizioni dei dati in SQL (vincoli di integrità generici, viste, specifica di vincoli di addizionali sotto forma di asserzioni); il DBMS Oracle Express Edition; cenni a SQL e linguaggi di programmazione (trigger, funzioni e procedure).
Parte 7 - XML
Introduzione a XML, gli elementi XML, gli attributi XML, documenti XML, XML parser, applicazioni di XML, XML e basi di dati, il linguaggio DTD, dichiarazioni di tipo di un documento XML, validità di un documento XML e modalità di validazione, DTD e schemi relazionali, DTD e XML Schema, linguaggi di interrogazione XML, XPath e XQuery.
Parte 8 – L'organizzazione fisica dei dati.
Memorizzazione dei record ed organizzazione dei file primari: introduzione, strumenti e tecniche per la gestione della memoria secondaria, memorizzazione di file di record su disco, operazioni sui file, file di record non ordinati, file di record ordinati, tecniche di hashing, altre possibili organizzazioni dei file primari, uso della tecnologia RAID per parallelizzare l’accesso a disco. Strutture di indicizzazione dei file: indici ordinati di singolo livello (primari, di clustering, secondari), indici multilivello statici, indici multilivello dinamici che utilizzano B-alberi e B+-alberi, altri tipi di indice (cenni).
Parte 9 – Tecnologia delle basi di dati centralizzate.
La nozione di transazione: introduzione, proprietà delle transazioni, scheduling e recupero delle transazioni, tecniche di serializzazione, supporto alle transazioni in SQL. Il gestore del buffer: architettura del buffer manager, primitive per la gestione del buffer, politiche di gestione del buffer, relazione tra il gestore del buffer e il file system. Tecniche di controllo della concorrenza: problematiche, architettura, anomalie delle transazioni concorrenti, tecniche basate su viste, conflitti, locking a due fasi (2PL e 2PL stretto) e timestamp, tecniche multiversione, granularità dei dati. Tecniche di controllo dell’affidabilità: concetti di base, architettura del controllore dell’affidabilità, la nozione di memoria stabile, organizzazione del log, gestione delle transazioni, gestione dei guasti. Elaborazione e ottimizzazione delle interrogazioni: i cataloghi di sistema; ottimizzazione delle interrogazioni (rappresentazione interna delle interrogazioni, profili delle relazioni, ottimizzazione basata sui costi); progettazione fisica di una base di dati.
Bibliografia
Testi adottati:
R. Elmasri, S. Navathe, Fundamentals of Database Systems (6th Edition), Pearson International Education / Addison Wesley, 2010. In alternativa: R. Elmastri, S. Navathe, Sistemi di basi di dati. Fondamenti (sesta edizione), Pearson Italia, 2011.
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di Dati: Modelli e Linguaggi di Interrogazione (terza edizione), McGraw-Hill, 2009.
P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, Basi di Dati: Architetture e linee di evoluzione (seconda edizione), McGraw-Hill, 2007.
Altri testi di riferimento:
A. Silberschatz, H. F. Korth, S. Sudarshan. Database System Concepts (5th Edition), McGraw-Hill, 2005.
A. Albano, G. Ghelli, R. Orsini. Fondamenti di basi di dati,, Zanichelli, 2005.
J.D. Ullman, Principle of Database and Knowledge Base Systems I – II, Computer Science Press, 1989. (Trad. it.
Basi di dati e di conoscenza, Gruppo Editoriale Jackson, 1991.)
S.Abiteboul, R.Hull, V. Vianu. Foundations of Databases, Addison-Wesley, 1995.
C. J. Date. An Introduction to Databases Systems (7th Edition), Addison-Wesley, 2000.
Modalità d'esame
Esame scritto e orale