Corso di Fondamenti di Informatica III e Basi di Dati - Prof. S. Russo
Programma dell' a.a. 2000/2001
Università degli Studi di Napoli Federico II
Facoltà di Ingegneria
Diploma Universitario in Ingegneria Informatica
CORSO DI
FONDAMENTI DI INFORMATICA III e BASI DI DATI
Prof. STEFANO RUSSO
Programma dell'a.a. 2000/2001
PARTE ISTITUZIONALE
Fondamenti di Informatica III: Progettazione e programmazione ad oggetti.
Tecniche di programmazione modulare. Programmazione con oggetti, con tipi di dati
astratti, con classi (object-based). Ereditarietà e polimorfismo. Programmazione orientata
agli oggetti (object-oriented).
(dai testi consigliati 1 e 2 e dalla dispensa didattica n. 1)
Il linguaggio C++ (complementi). Ereditarietà; funzioni virtuali; classi astratte.
Polimorfismo. Binding dinamico.
(dal testo adottato 3 Cap. 20, 21, 22, 23;
dal testo consigliato 1 e dalla dispensa didattica n. 1)
Progettazione ad oggetti. Modelli ad oggetti statici e dinamici. Relazioni tra classi:
gerarchie generalizzazione-specializzazione; contenimento (aggregazione); associazioni. Il
linguaggio UML: diagramma delle classi; diagramma degli stati; diagrammi di interazione
tra oggetti o classi. Dalla progettazione con UML alla programmazione a oggetti.
(dal testo adottato 3 Cap. 32, 34, 35 (no Aspetti dinamici);
dalle dispense didattiche n. 2 e n. 3)
Il linguaggio Java. Generalità: orientamento agli oggetti, differenze col C++, sicurezza,
strumenti di sviluppo. Java e il web. Modelli di esecuzione: interpretazione e compilazione
just-in-time. Costrutti base. Moduli (packages). Input-output. Gestione delle eccezioni.
Programmazione concorrente con threads. Programmazione di applicazioni client-server con
libreria socket. Programmazione di interfacce utente con AWT.
(dai testi consigliati 2 e 3 e dalle dispense didattiche n. 5, 6, 9, 10)
Il linguaggio HTML. I linguaggi di tipo mark-up. Struttura di un ipertesto. Gli ipertesti
elettronici e la rete Internet; pagine web, HTML e HTTP. Struttura di un documento HTML.
Formattazione di testo in HTML; sfondi; liste; tabelle; immagini; audio; collegamenti (links);
maschere (forms). HTML e Java: l’etichetta <applet>. Le servlet. Aspetti tecnologici: gli
editor per HTML e i server HTTP.
(dalla dispensa didattica n. 4;
dal testo adottatto 1, Cap. 14 par. 1)
Università di Napoli Federico II – D.U. in Ingegneria Informatica
1
Corso di Fondamenti di Informatica III e Basi di Dati - Prof. S. Russo
Programma dell' a.a. 2000/2001
Basi di Dati: Progettazione DB e tecnologie dei DBMS.
Le basi di dati. Definizione e cenni storici. Modelli dei dati. Indipendenza dei dati. I sistemi
di gestione di basi di dati (DBMS). L’amministratore di basi di dati. Basi di dati e Web.
(dal testo adottatto 1, Cap. 1, Cap. 14 par. 2)
Il modello Entità-Relazioni. Costrutti e notazioni. Entità, relazioni, attributi, chiavi.
Cardinalità di attributi e relazioni. Gerarchie ISA. Documentazione degli schemi E-R.
(dal testo adottatto 1, Cap. 5 parr. 2, 3;
dal testo adottatto 2, Cap. XII par. 6)
Il modello relazionale. Relazioni, attributi, domini, chiavi. Dipendenze funzionali. Forme
normali: 1NF, 2NF, 3NF, BCNF. Teoria dei valori nulli. Vincoli di integrità. Chiavi esterne
e integrità referenziale. L’algebra relazionale: operatori insiemistici, ridenominazione,
selezione, proiezione e join.
(dal testo adottatto 1, Cap. 2, Cap. 3 par. 1, Cap. 8;
dal testo adottatto 2, Cap. XII parr. 1-5, 7-10;
dalla dispensa didattica 14)
Il linguaggio SQL. Comandi per la definizione e modifica dello schema (DDL).
Interrogazioni e manipolazioni (DML). Interrogazioni in presenza di valori nulli.
Definizione dei vincoli intrarelazionali e interrelazionali. Creazione di indici. Creazione di
viste. Controllo dei privilegi di accesso. SQL nei linguaggi ospite.
(dal testo adottatto 1, Cap. 4;
dal testo adottatto 2, Cap. XII parr. 12-15,
dalla dispensa didattica 15)
La progettazione di basi di dati. Fasi della progettazione. Ciclo di vita di una base dati.
Raccolta ed analisi dei requisiti statici e dinamici; glossario dei dati, volumi dei dati e delle
operazioni. Progettazione concettuale; strategie di progetto. Ristrutturazione dei diagrammi
E-R e traduzione verso il modello relazionale. Progettazione logica. Definizione degli indici.
Progettazione fisica. Progettazione e tecnologie di basi di dati su Web. Le API JDBC e
ODBC.
(dal testo adottatto 1, Cap. 5 par. 1, Cap. 6, Cap. 7, Cap. 9 par. 7, Cap. 14 par. 3, 4;
dal testo adottatto 2, Cap. XII par. 11;
dal testo consigliato 3, Capp. 43, 44, 45, 47;
dalle dispense didattiche 11, 12)
Tecniche di organizzazione degli archivi. I supporti di memorizzazione di massa ad
accesso diretto (DASD). Tempo di accesso, di posizionamento, di latenza, di trasferimento.
Buffer di I/O del sistema operativo. Canale, controllore del disco. Modi di elaborazione
degli archivi: seriale, sequenziale, casuale. Metodi di accesso: sequenziale, con tabella di
accesso (singola e a più livelli), sequenziale con indice. Accesso calcolato: accesso diretto
per indirizzi; metodo hash. I DBMS e il file system.
(dal testo adottato 1, Cap. 9 par. 9.3.4;
dal testo adottato 4, Parte I Cap. 4, escl. par. 7;
Parte IV Cap. 6 par 6,7,8,9, Cap. 8 par. 8)
Tecnologia dei DBMS (cenni). Il concetto di transazione. Commit e rollback. Proprietà
acide. Log, checkpoint, dump. Ripresa a caldo e a freddo. I DBMS MS-Access e Oracle.
(dal testo adottatto 1, Cap. 9 parr. 1, 4, Cap. 10 parr. 1, 10.5.1, App. A;
dalla dispensa didattica 16)
Università di Napoli Federico II – D.U. in Ingegneria Informatica
2
Corso di Fondamenti di Informatica III e Basi di Dati - Prof. S. Russo
Programma dell' a.a. 2000/2001
PARTE ESERCITATIVA
Esercitazioni guidate sullo sviluppo di programmi nei linguaggi C++, HTML e Java, sulla
progettazione ad oggetti con UML, e sulla progettazione di basi di dati, basate sull’uso di
ambienti di sviluppo professionali e di strumenti CASE, vengono svolte in aula ed in
laboratorio durante il corso. Esercitazioni libere sui singoli argomenti sono svolgibili nei
laboratori EUBEO.
OBIETTIVI FORMATIVI
Per quanto riguarda gli aspetti concettuali e metodologici, si richiede che lo studente:
- maturi una visione critica ed acquisisca padronanza delle tecniche di programmazione
strutturata e modulare nei linguaggi C++ e Java;
- sappia progettare un sistema software ad oggetti con i diagrammi UML, e conosca le
tecniche di passaggio dalla progettazione O-O alla programmazione nei linguaggi C++ e
Java;
- sappia eseguire la progettazione concettuale di una base di dati con il modello E-R e
passare alla progettazione logica con il linguaggio SQL.
Per quanto riguarda gli aspetti tecnologici, si richiede che lo studente:
- acquisisca una buona padronanza di una ambiente per lo sviluppo di applicazioni C++ e
Java;
- acquisisca una buona padronanza di strumenti per la creazione di documenti HTML per
pagine web, con collegamenti a programmi Java;
- acquisisca una buona padronanza di un sistema DBMS in ambiente Personal Computer;
- sappia sviluppare programmi Java con interfacciamento a sistemi DBMS ed a pagine
web.
MATERIALE DIDATTICO
TESTI ADOTTATI
1. P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone: Basi di Dati – seconda edizione, Mc GrawHill Libri Italia, 1999.
2. B. Fadini, C. Savy: Fondamenti di Informatica I, Liguori editore.
3. C. Savy: Da C++ a UML, McGraw-Hill Libri Italia, 2000.
4. B. Fadini, C. Savy: Fondamenti di Informatica II, Liguori editore.
TESTI CONSIGLIATI
1. H. Schildt: Guida al C++, Mc Graw-Hill
oppure:
Deitel & Deitel, The complete C++ training course, Prentice Hall, 1998 (con ipertesto)
oppure:
B. Eckel, Thinking in C++ - 2nd edition, Prentice Hall, 1999
oppure:
B. Stroustrup: Il linguaggio C++, 3a edizione, Addison-Wesley.
2. P. Naughton, H. Schildt: Java. McGraw-Hill.
3. J. Jaworski: Java 2 – Tutto & oltre, Apogeo, 1999.
DISPENSE DIDATTICHE
1. S. Russo, C. Savy: Introduzione alla programmazione ad oggetti e al linguaggio C++.
Università di Napoli Federico II – D.U. in Ingegneria Informatica
3
Corso di Fondamenti di Informatica III e Basi di Dati - Prof. S. Russo
Programma dell' a.a. 2000/2001
Disponibile anche come corso elettronico ipertestuale.*
C. Savy: Strategie di progettazione ad oggetti in linguaggio C++.
C. Savy: Un esempio di progettazione ad oggetti con UML.
S. Russo: Il linguaggio HTML.*
S. Russo: Introduzione al linguaggio Java.*
S. Russo: Trasparenze dalle lezioni sul linguaggio Java, disponibili in forma di ipertesto
elettronico.*
7. Appunti trascritti dalle lezioni del corso di Basi di Dati del Prof. P. Atzeni, Diploma
Teleimpartito in Ingegneria Informatica e Automatica, Consorzio NETTUNO.
8. S. Russo: Esercitazione sul linguaggio SQL, con software didattico interprete interattivo
SQL.*
9. A. Sergio: Introduzione alla piattaforma Java – trasparenze del seminario.
10. A. Sergio: Esempi di programmi con Java servlet.
11. A. Sergio: Le API JDBC – trasparenze dal seminario.
12. G. Granero: Accesso a basi di dati via ODBC,
http://www.dia.uniroma3.it/~atzeni/didattica/BD/materiale/lucidiGranero.pdf
13. P. Atzeni: La progettazione concettuale (esempio) – trasparenze dalle lezioni.
14. P. Atzeni: Il modello relazionale – trasparenze dalle lezioni.
15. P. Atzeni: Il linguaggio SQL – trasparenze dalle lezioni.
16. G. Vitagliano, M. Piscopo: L’ambiente Oracle – trasparenze dal seminario.
2.
3.
4.
5.
6.
Le dispense didattiche sono disponibili in forma elettronica sul server
ftp://eubeo.eubeo.unina.it/pub/F3andBD; quelle contrassegnate con l’asterisco sono inoltre
disponibili sul sito Internet: http://www.grid.unina.it/courseware.
MODALITA’ DI SVOLGIMENTO DELL’ESAME
L’esame consiste:
– di una prova di accertamento relativa alla teoria ed alla progettazione delle basi di dati;
– in una prova pratica individuale al calcolatore, con implementazione di una piccola base
di dati, e sviluppo di un programma di tipo servlet in linguaggio Java per le operazioni di
manipolazione dei dati con SQL;
– in una prova orale, consistente di domande sui contenuti concettuali, metodologici e
tecnici del corso.
LABORATORIO PER ESERCITAZIONI: Consorzio EUBEO, Comprensorio ex
Olivetti, Pozzuoli.
ASSISTENZA DIDATTICA: Ricevimento studenti: Lunedi ore 15:30-18:30, presso il
Dipartimento di Informatica e Sistemistica, Mostra d'Oltremare, Padiglione 20 (ex Fac.
Fisica, ingresso di fronte allo Zoo, viale Kennedy), Napoli.
Università di Napoli Federico II – D.U. in Ingegneria Informatica
4