Programma del corso

BASI DI DATI

Dott.ssa Clara Pizzuti

(A. A. 2000-2001)




Obiettivo del corso è l'introduzione alle basi di dati ed ai sistemi di gestione di basi di dati. Il corso intende fornire gli elementi per:

  1. la comprensione della struttura e delle funzioni di un sistema di gestione di basi di dati;
  2. la conoscenza sui modelli e i linguaggi correntemente utilizzati per la realizzazione di basi di dati;
  3. gli elementi per la comprensione della struttura di sistemi di basi di dati avanzati, quali i sistemi distribuiti.

Concetti introduttivi
Archivio e Basi di dati (Database, DB): Problemi e Soluzioni, Sistema di Gestione di Basi di dati (Data base Management System -- DBMS)

Architettura di un DBMS
Livelli e Astrazioni, Indipendenza dei Dati, Utenti delle basi di dati. Requisiti di un DBMS.

Modelli e linguaggi
Diversi modelli dei dati, Cenno sul modello relazionale, Linguaggi di definizione e manipolazione (Data definition and data manipulation languages - DDL/DML), Linguaggi procedurali e dichiarativi, Schemi e istanze. Cenni su progettazione di basi di dati.

Modello Entità-Relazione
Entità, Relazioni e Attributi. Concetti di Sottoinsieme (ISA) e Generalizzazione. Vincoli di integrità: cardinalità minime e massime, identificatori. Rappresentazione grafica.

Progettazione concettuale
Ciclo di vita di una base di dati. Fasi della progetazione di una DB: progettazione concettuale, logica e fisica. Progettazione concettuale a partire dalle specifiche utilizzando il modello entità- relazione. Progettazione top-down, bottom-up e mista.

Modello Relazionale
Struttura in una base di dati relazionale. Concetti di relazione, relazione con attributi, schema di relazione e schema di base di dati. Concetti di tupla, istanza di relazione e istanza di base di dati. Chiave interna ed esterna. Vincoli di integrità. Operazioni su relazioni.

Progettazione logica
Fasi della progettazione logica. Traduzione da modello entità/relazione a modello relazionale.

Algebra Relazionale
Modello. Operazioni dell'algebra relazionale. Algebra relazionale estesa con funzioni di aggregazione e chiusura transitiva.

Calcolo Relazionale
Calcolo relazionale orientato alle tuple ed ai domini.

Il linguaggio SQL
Definizione dati. Interrogazioni. Modifica di schemi e istanze. Definizione di viste. Specifica di indici. Immersione di istruzioni SQL nei linguaggi di programmazione. Quantificazione.

Dipendenze Funzionali e Forme normali
Ridondanze e anomalie. Forme Normali. Proprietà delle decomposizioni. Progettazione di basi di dati e normalizzazione.

Strutture Fisiche di memorizzazione
Memorie di massa. Concetti di buffer e blocco. Strutture dei file. Operazioni sui file. Tecnica Hash.

Indici e Hashing
Concetti di indice. Indice primario, secondario. File indice. B-albero. B+- albero. Hashing statico e dinamico.

Transazioni
Sistemi multi-utente. Concorrenza e recupero da fallimenti. Definizione transazione. Operazioni di lettura e scrittura. Stati della transazione.

Concorrenza
Il sistema "Log". Commit-point e Check-point. Schedualzione di transazioni. Serializabilit&agreave. Gestione stallo.

Recupero consistenza
Classificazione dei 'fallimenti'. Recupero mediante file-log. Gestione buffer. Checkpoints.

Parte progettuale
Redazione di un progetto applicativo per la realizzazione di un software su una base di dati relazionale in ACCESS.


Materiale didattico



L'esame consiste in una prova scritta e una orale.


AUSILI DIDATTICI

  1. Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Basi di Dati. Concetti, linguaggi e architetture, McGraw-Hill.



ORARIO DEL CORSO




La Dott.ssa Clara Pizzuti

RICEVE

Martedi' dalle 10.30.30 alle 13.00