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 e multimedia ha lo scopo di fornire allo studente le conoscenze necessarie per la progettazione di una base di dati e delle relative applicazioni, con una attenzione particolare alla gestione dei dati multimediali. 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 applicazioni che permettano di gestire informazioni multimediali.
Attività formative
Il corso prevede 64 ore di lezioni/esercitazioni in aula che verranno svolte nel secondo e nel terzo quadrimestre. Le prime 48 ore (6 crediti) saranno in comune al corso "Basi di dati e Web". 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 corso di Laboratorio di Basi di Dati e Multimedia svolto in parallelo a questo corso. Per il programma del corso di laboratorio si veda la
pagina
web del corso 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 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 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. 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. Il controllo della
concorrenza: il metodo basato sul locking a due
fasi. Metodi di accesso ai dati: strutture dati sequenziali e indici (B+-tree).
- Dati multimediali: Caratteristiche generali della multimedialità dei dati; tecniche di acquisizione di dati multimediali; formati di memorizzazione; compressione dei dati; tecniche di indicizzazione multidimensionale; modelli dei dati orientati agli oggetti e progettazione orientata agli oggetti di basi di dati multimediali; presentazioni multimediali.