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
- L. Welling, L. Thomson, MySql tutorial, Pearson Education Italia - MySql press, 2004
- D. Dorbolò, A. Guidi, Guida a SQL, Mc Graw Hill, 1999