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 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 corso prevede 64 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 corso di Laboratorio di
Basi di Dati e WEB svolto in parallelo a questo corso (per il programma del 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.
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).
- Basi di dati e server WEB: Cenni al linguaggio HTML
(struttura di un documento, marcatori principali, form). Cenni al protocollo HTTP.
I sistemi informativi su WEB. Tecniche e strumenti per linterazione tra una base di
dati e un server HTTP: approccio basato su estensioni del
server WEB (servlet). Interazione servlet/base di dati: JBDC e il concetto di Java bean.
Java Server Pages (JSP): immersione di Java in HTML, interazione JSP/servlet.