Obiettivi formativi
I sistemi per la gestione di basi di dati rappresentano un elemento fondamentale per
la maggior parte dei sistemi informatici presenti nella realtà economica di ogni paese
avanzato.
Il modulo "Teoria: basi di dati" dell'insegnamento Basi di dati e WEB
ha lo scopo di fornire allo studente le conoscenze necessarie per la progettazione di una base di dati e delle
relative applicazioni.
In particolare nel corso si illustreranno in dettaglio le metodologie per la progettazione
concettuale di una base di dati e per la successiva realizzazione della stessa sui più
diffusi sistemi per la gestione di basi di dati. Inoltre si presenteranno
alcune tecniche per
la realizzazione dei sistemi per la gestione di basi di dati e si illustreranno le
caratteristiche fondamentali del linguaggio di interrogazione SQL.
Lo studente alla fine del corso sarà in grado di definire autonomamente le
specifiche concettuali di una base di dati, di progettarne la struttura logica,
di interrogare la base di dati e di realizzare le applicazioni che interagiscono con
la base stessa.
Attività formative
Il modulo prevede 48 ore di lezione/esercitazione in aula che verranno svolte nel
secondo e nel terzo quadrimestre.
Le esercitazioni riguarderanno la progettazione concettuale e logica di una base di dati e
linterazione con una base di dati relazionale.
Le esercitazioni pratiche si svolgeranno nellambito del modulo di Laboratorio svolto in parallelo
a questo modulo (per il programma del laboratorio
si veda la pagina web del modulo medesimo).
Programma del corso
- Introduzione ai sistemi per la gestione di basi di dati:
Architettura e funzionalità di un sistema per la gestione di basi di dati.
Concetti di: indipendenza fisica, indipendenza logica, persistenza, concorrenza,
affidabilità, interrogazione e aggiornamento. Vantaggi di un sistema per la gestione di
basi di dati rispetto al file system di un sistema operativo.
- Progettazione concettuale di una base di dati:
Modelli concettuali per il progetto dei dati. Il modello Entità-Relazione (E-R).
Elementi del modello E-R: entità, attributi, relazioni, gerarchie di generalizzazione e
vincoli di cardinalità. Lo schema concettuale di una base di dati.
- Progettazione logica di una base di dati:
Modelli dei dati per i sistemi di gestione di basi di dati: il modello relazionale.
Definizioni di: relazione, vincoli di integrità e schema relazionale.
Lo schema logico di una base di dati. Traduzione di schemi concettuali in schemi
relazionali. Linguaggi per la definizione di una base di dati relazionale:
il linguaggio SQL. Istruzioni SQL per: la creazione di una relazione e
la definizione di vincoli di integrità.
- Interazione con una base di dati: Introduzione ai linguaggi per la
definizione, modifica e interrogazione di una base di dati. Lalgebra relazionale.
Il linguaggio SQL: il costrutto di selezione (Select-From-Where), interrogazioni
nidificate, ordinamento e raggruppamento dei dati; il costrutto di inserimento,
cancellazione e aggiornamento (Insert, Delete, Update). Il concetto di vista.
- L'architettura interna di un sistema per la gestione di basi di dati:
Rilevanza dei sistemi transazionali. Concetto di transazione. Proprietà di una
transazione. Il controllo della concorrenza: il metodo basato sul locking a due fasi.
Metodi di accesso ai dati: strutture dati sequenziali e indici (B-trees e hashing).