Basi di Dati + Laboratorio (Corso B)
-------------
Programma preliminare a.a. 2004/2005
Introduzione alle Basi di dati
Sistemi informativi e sistemi informatici. Le basi di dati. Il DBMS. Tipologie di utenti di un DBMS. Linguaggi per basi dati: DDL e DML.Architetture delle Basi di dati
I modelli dei dati. Schemi e livelli di astrazione in una base di dati. L'architettura ANSI/SPARC a tre livelli. Linguaggi ed interfacce per basi dati. Architetture centralizzate e client/server.Modello ER per modellare i dati
Modelli di dati concettuali ad alto livello per la modellazione dei dati. Applicazione di esempio. Tipi di entità, insiemi di entità, attributi e chiavi. Tipi di associazione, insiemi di associazioni, ruoli e vincoli. Entità deboli. Raffinamento progettazione ER.Modello EER e modellazione UML
Sottoclassi, superclassi ed ereditarietà. Specializzazione/generalizzazione. Tipi di associazione di grado maggiore di due. Astrazione dati, rappresentazione della conoscenza e ontologia.Il modello relazionale
Prodotto cartesiano e relazioni. Corrispondenze fra relazioni. Informazione incompleta e valori nulli. Vincoli di integrità. Vincoli intrarelazionali: vincoli di tupla, vincolo di chiave. Vincoli interrelazionali: vincoli di integrità referenziale. Aggiornamento egestione delle violazioni e dei vincoli.L'algebra relazionale
Operatori dell'algebra relazionale: operatori insiemistici, ridenominazione, proiezione, selezione, join. Join naturale. Join esterno. Theta-join. Interrogazioni in algebra relazionale. Trasformazioni di equivalenza per espressioni in algebra relazionale. Algebra con valori nulli. Viste.Calcolo relazionale
Calcolo su domini. Costruzione delle formule: operatori logici and, or e not; quantificatore esistenziale e universale; Interrogazioni in calcolo sui domini. Calcolo su tuple con dichiarazione di range. Interrogazioni in calcolo su tuple. Limitazioni del calcolo relazionale.Traduzione di schemi ER e EER a schemi relazionali
Il processo di traduzione da ER a relazionale. Traduzione di costrutti EER in relazioni.Linguaggio SQL
Lo standard SQL-2. Definizione di schemi in SQL: tipi di dato di base e definiti dall'utente, definizione di tabelle; definzione dello schema; definizione di vincoli (intrarelazionali semplici, di integrità referenziale, e generici). Definizione di indici. Istruzioni per la modifica dello schema. Interrogazioni in SQL: il comando select; formule di selezione; ordinamento del risultato; join di tabelle. Uso di variabili. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni nidificate. Operatori su insiemi. Istruzioni di inserimento, cancellazione e modifica. Le asserzioni. Le viste. Controllo degli accessi: identificazione, risorse e privilegi.SQL: asserzioni, viste, trigger e tecniche di programmazione
Specificazione vincoli mediante asserzioni. Viste in SQL. Trigger e concetti di basi di dati attive. Problematiche programmazione basi di dati. SQL embedded ed SQL dinamico. Funzioni. Stored procedure per le basi di dati.Progettazione concettuale
Fonti dei requisiti. Organizzazione e scrittura dei requisiti. Sviluppo del modello ER. Strategie di progetto: bottom-up, top-down, inside-out e ibrida. Qualità di uno schema concettuale. Strumenti CASE per la progettazione.Progettazione logica
Analisi delle prestazioni su schemi ER. Volume dei dati. Caratteristiche delle operazioni: schema di operazioni e tavola degli accessi. Ristrutturazione di schemi ER: analisi delle ridondanze, eliminazione delle generalizzazioni, partizionamento/accorpamento di entità e associazioni, scelta degli identificatori primari. Traduzione verso il modello relazionale. Traduzione di relazioni molti-a-molti, uno-a-molti e uno-a-uno. Un esempio di progettazione logica. Uso di strumenti CASE per la progettazione logica.Dipendenze funzionali e normalizzazione per basi di dati relazionali
Ridondanze e anomalie. Le dipendenze funzionali. Dipendenze non banali. Dipendenze e chiavi. Forma normale di Boyce e Codd. Normalizzazione in BCNF. Decomposizioni senza perdite. Decomposizioni con conservazione delle dipendenze. La terza forma normale. Decomposizione in 3FN. Normalizzazione e schemi concettuali.Strato fisico: memorizzazione di dati, indici, elaborazione delle interrogazioni e progettazione fisica
Memoria secondaria. Collocazione sul disco dei record di un file. Operazioni su file. Techiche hash.Indici per file
Tipi di indici ordinati a un solo livello e indici multilivello. Alberi B e alberi B1. Indici su chiavi multiple. Altri tipi di indici.Transazioni
Introduzione alla gestione delle transazioni. Concetti di transazione e di sistema.Esercitazioni
Esercitazioni in laboratorio con un DBMS compatibile con SQL. Esercizi di progettazione concettuale. Esercizi sull'utilizzo di DML e DDL. Interrogazioni con SQL.Libro di testo
R. A. Elmasri, S. B. Navathe, Sistemi di basi di dati, fondamenti, Pearson/A.Wesley 2004, quarta edizione (in italiano)Libri per consultazione
- P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di Dati, Modelli e linguaggi di interrogazione, McGraw-Hill Italia 2002