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 presenterano 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 80 ore di lezioni/esercitazioni 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 l’interazione con una base di dati
relazionale. Le esercitazioni pratiche si svolgeranno
nell’ambito del corso di Laboratorio di Basi di Dati e WEB
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à e il controllo dell'accesso ai dati.
- 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. Controllo della
concorrenza (view, conflict serializzabilità e locking a due
fasi). Metodi di accesso ai dati: strutture dati sequenziali,
hashing e a indice.
- 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 l’interazione tra una base di dati e un server HTTP:
approccio basato su CGI, 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.
Programma del laboratorio
- Introduzione al DBMS PostgreSQL: Connessione ad un database,
uso di semplici comandi di controllo, creazione di tabelle.
- PostgreSQL: vincoli di integrità, politiche di reazione
alle violazioni dei vincoli di integrità referenziale.
- PostgreSQL: interrogazioni SQL semplici.
- PostgreSQL: interrogazioni SQL complesse.
- Linguaggio HTML: struttura di un documento HTML, fogli di
stile, marcatori fondamentali, tabelle.
- Linguaggio HTML: form. Attivazione di un programma CGI (shell
script).
- Installazione di un engine sul server WEB per la gestione delle
servlet. Esempi di servlet semplici. Interazione servlet-dbms
PostgreSQL.
- Uso form e servlet per la gestione di dati.
- Java bean e servlet.
- Java Server Pages (JSP) e interazione con le form HTML.
- JSP e servlet per un approccio di sviluppo Model View
Controller.