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
corso di “Basi di dati” ha lo scopo di fornire allo
studente le conoscenze necessarie per la progettazione di una base
di dati. 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
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 e di interrogare la base
di dati.
Attività formative
Il corso prevede 40 ore di lezioni/esercitazioni in aula che
verranno svolte nel secondo quadrimestre. Le esercitazioni
riguarderanno la progettazione concettuale e logica di una base di
dati e l’interazione con una base di dati relazionale. Le
esercitazioni pratiche si svolgeranno nell’ambito del corso
di Laboratorio di Basi di Dati svolto in parallelo a questo
corso.
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 e il modello object-relational (cenni). 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, 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. L’algebra 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.