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.
L'esame consiste in una prova scritta e una orale.
AUSILI DIDATTICI