Corso: Basi di Dati I – A.A. 2005-2006 (6 CFU)
Docente: Prof. Paolino Di Felice
Laurea Triennale: Ingegneria
Informatica-Automatica -- Anno
di corso: III
Laurea Specialistica: Ingegneria
Gestionale --
Anno di corso: I
Settore Scientifico Disciplinare: ING-INF/05
Obiettivi
Introdurre
modelli, linguaggi, metodologie e tecnologie
fondamentali nel contesto dei sistemi di gestione di basi di
dati (SGBD) relazionali da anni universalmente usati
in ambito aziendale per la gestione automatica, integrata, efficiente e sicura di
grosse quantità di dati strutturati.
Saper fare
Progettare basi di dati relazionali, loro creazione, aggiornamento ed
interrogazione tramite SQL. Sviluppare applicazioni SQL tramite tecnologie
informatiche consolidate quali, ad esempio, i linguaggi di programmazione
evoluti. Saper operare con un SGBD commerciale (creazione di tabelle, viste,
impostazione di vincoli, formulazione di query SQL, scritture di stored
procedure, importare/migrare dati da/verso altre BD, …).
Contenuti
Modelli, linguaggi, metodologie e tecnologie per
basi di dati relazionali
1.
P. Atzeni, S.
Ceri, S. Paraboschi, R. Torlone, Basi di Dati Modelli e linguaggi
d’interrogazione, McGraw-Hill Libri Italia, 2002. (testo
base)
2.
R. Elmasri, S.B.
Navathe, Sistemi di basi di dati, Fondamenti
- I edizione italiana, Addison-Wesley Longman Italia, 2001. (testo di consultazione)
3.
R. van der Lans, Introduzione
a SQL, II edizione, Addison-Wesley, 2001. (consultazione)
4.
Dispensa a cura
del docente.
Programma:
descrizione dettagliata
1. Nozioni preliminari
Sistema informativo e sistema
informatico. I SGBD: architettura e servizi offerti. Ciclo di vita dei sistemi
informatici. ([1].Cap.1,6, [2].Capp.1,2)
2. Modello relazionale dei dati e
linguaggi d’interrogazione teorici
Concetti base: relazione, schema
di relazione, base di dati relazionale, schema di base di dati relazionale,
variabile ennupla, chiavi, vincoli d’integrità. Rappresentazione tabellare
delle relazioni. L'algebra relazionale. Il calcolo relazionale
sulle ennuple. ([1].Capp.2,3,
[2].Cap.7)
3. SQL
Categorie di enunciati di SQL, la
creazione, il popolamento, l’aggiornamento e l’interrogazione di BD
relazionali. Interrogazione su una o più tabelle. Le variabili ennuple, le
interrogazioni annidate semplici e complesse. La clausola GROUP
BY e gli
operatori di raggruppamento. Le interrogazioni ricorsive. La definizione dei
vincoli intra-/inter-relazionali in SQL. Le viste. ([1].Cap.4, [2].Cap.8, [3].Capp.1-3, 5-11, 12-15, 16-17, 20)
4.
Progettazione di basi di dati relazionali
Progettazione concettuale Il modello E-R. La rappresentazione grafica di schemi E-R.
I vincoli strutturali nel modello E-R. Identificatori interni ed esterni. La progettazione di
schemi concettuali complessi attraverso raffinamenti successivi. ([1].Cap.6,
[2].Cap.3).
Progettazione logica Ristrutturazione di schemi E-R.
Regole per il passaggio da schemi E-R a schemi relazionali. I cammini di join.
([1].Cap.8, [2].Cap.9).
5. Tecnologie
Architettura,
principali funzionalità ed introduzione all’uso di SGBD commerciali di larga
diffusione in ambito aziendale. Approcci allo sviluppo di applicazioni SQL: SQL embedded
in linguaggi di programmazione evoluti, linguaggi proprietari, CLI. Casi di
studio: applicazioni SQL embedded nel linguaggio C++. Base
di dati, connettività e Web: cenni alla
soluzione Microsoft. ([1].Cap.5, App.A-B, [2].Cap.12).
Modalità d'esame
La valutazione, protesa
all’accertamento del possesso delle conoscenze teorico-pratiche da parte degli
allievi, si articola in due fasi indipendenti:
-
una prova scritta,
seguita da un colloquio sulla stessa ed
-
una prova pratica
concernente la discussione di un progetto, preparato precedentemente dall’allievo,
nonché l’accertamento del possesso di abilità operative nell’uso del SGBD
commerciale IBM-DB2 (oppure, ma solo se ne
sussistono le motivazioni, SQL Server, Ingres o Oracle). La sperimentazione individuale
della tecnologia dei SGBD relazionali è occasione
insostituibile per consolidare i molteplici concetti teorici del Corso.
***** *****
*****
Informazioni sul PROGETTO (AA 2005-2006)
Esso
si articola in due parti nel seguito denominate:
-
Progettazione
relazionale e
-
Sviluppo
di un’applicazione.
Progettazione relazionale (coinvolge tutti gli allievi di BDI)
A ogni allievo (o loro libera aggregazione, numero
massimo: 3) è richiesto quanto segue:
1.
scelta di un universo d’interesse e definizione delle specifiche progettuali
(vincoli inclusi),
2.
progettazione
concettuale-logica di una BD relazionale,
-
elementi minimali obbligatori che devono esser
presenti nello schema E-R:
-
numero entità: da 6 a 10, di cui almeno una “weak”,
-
generalizzazione:
almeno una,
-
elementi non obbligatori, ma qualificanti:
-
associazioni
ricorsive: almeno una,
3.
definizione,
tramite SQL/DDL, degli script di creazione di una base di dati “ospitante”
nonché di generazione di tutte le tabelle progettate,
4.
definizione,
tramite SQL/DML, degli script di popolamento di tutte le tabelle (numero minimo
di ennuple per ciascuna tabella: 25),
5.
definizione,
tramite SQL, da 3 a 5 viste che
coinvolgano almeno 3 tabelle della base di dati. Almeno una di esse deve
ospitare la clausola GROUP BY,
6.
implementazione,
in DB2, di quanto previsto ai punti precedenti.
Sviluppo di un’applicazione (allievi del “settore dell’Informazione”)
Attraverso
lo sviluppo di un’applicazione l’allievo ha modo di consolidare i contenuti del
Corso ma anche occasione per sperimentare concretamente come la
tecnologia informatica dei SGBD si saldi ad altre tecnologie di larga
diffusione aziendale, in particolare a quella dei linguaggi di programmazione
evoluti.
A completamento della Progettazione relazionale, è richiesto di realizzare, in uno dei
tre approcci discussi in classe (si veda il seminario su: SQL e applicazioni (27.10.05).pdf reperibile
nella Dispensa), una semplice applicazione funzionante ed
adeguatamente documentata che:
·
si connetta alla BD realizzata,
·
invii ad essa una query che coinvolga almeno
due sue tabelle (è possibile riusare anche qualcuna delle viste create),
·
aggiorni il valore di almeno una ennupla
di una delle tabelle della BD,
·
aggiunga almeno una ennupla in una delle
tabelle della BD.
Linguaggio di
programmazione utilizzabile: C++ o Java (a scelta).
Per non appesantire la realizzazione
dell’applicazione è data facoltà, a
quanti lo desiderano, di limitarla ad una porzione
significativa dell’intera base di dati realizzata, liberamente scelta
dall’allievo.
Sviluppo di un’applicazione
Access (allievi gestionali)
Da concordare con l’Ing. Marco Iezzi.
Documentazione
da consegnare all’esame
Un CD contenente:
Progettazione relazionale
a.
una relazione (in formato Microsoft Word) circa le
specifiche progettuali, la progettazione concettuale-logica e tutti gli script
richiesti,
b.
il file contenente la BD
realizzata.
Del materiale al punto “a.” è richiesta anche
una stampa cartacea.
Sviluppo di un’applicazione (allievi del “settore dell’Informazione”)
c.
la descrizione dell’architettura della soluzione
proposta (formato Microsoft Word),
d.
il codice sorgente dell’applicazione sviluppata,
e.
l’eseguibile della stessa.
Del materiale ai punti “c.” e “d.” è richiesta anche
una stampa cartacea.
Sviluppo di un’applicazione Access
(allievi gestionali)
f.
una breve descrizione di quanto realizzato (formato
Microsoft Word),
g.
il file .mdb contenente
la BD “Access” e l’applicazione grafica realizzata.
Del materiale al punto “f.” è richiesta anche
una stampa cartacea.
Modalità di valutazione del lavoro svolto dall’allievo
Essa concernerà:
· l’aderenza dello schema concettuale alle specifiche,
· la sua corretta traduzione nei costrutti del modello
relazionale dei dati,
· la correttezza degli script presentati,
·
il corretto funzionamento dell’applicazione scritta,
·
la qualità della documentazione
interna all’applicazione,
· la completezza della relazione presentata,
· l’efficacia della discussione di quanto realizzato.
***** *****
*****
I punteggi
Allievi del settore dell’Informazione
-
scritto+colloquio: <= 16/30;
-
prova pratica: <= (3+7)/30 (progettazione+applicazione)
+ 4/30 (conoscenza del DB2).
Allievi gestionali
-
scritto+colloquio: <= (16+4)/30;
-
prova pratica: <= (3+3)/30 (progettazione+applicazione)
+ 4/30 (conoscenza del DB2).
Un commento sulla prova scritta
E’ la stessa per tutti gli
allievi per 16/30. E’ prevista una domanda da 4/30 rivolta ai soli gestionali onde
compensare il minor peso attribuito all’applicazione Access. Tale domanda potrà
concernere un qualsiasi argomento del presente programma d’esame, inclusa la parte tecnologica che, come sottolineato,
è rilevante per un proficuo, completo e corretto apprendimento
dell’insegnamento di Basi di dati I.