Basi di dati (2010/2011)

Codice insegnamento
4S00037
Crediti
12
Coordinatore
Alberto Belussi
Altri corsi di studio in cui è offerto
Altri corsi di studio in cui è offerto
Altri corsi di studio in cui è offerto
    Settore disciplinare
    INF/01 - INFORMATICA
    Lingua di erogazione
    Italiano
    L'insegnamento è organizzato come segue:
    Attività Crediti Periodo Docenti
    Teoria 9 II semestre, I semestre Alberto Belussi
    Laboratorio 3 II semestre Alberto Belussi

    Orario lezioni

    I semestre
    Attività Giorno Ora Tipo Luogo Note
    Teoria lunedì 11.30 - 13.30 lezione Aula B  
    Teoria martedì 11.30 - 13.30 lezione Aula A  
    II semestre
    Attività Giorno Ora Tipo Luogo Note
    Teoria lunedì 11.30 - 13.30 lezione Aula B  
    Teoria martedì 11.30 - 13.30 lezione Aula B  
    Laboratorio martedì 15.30 - 18.30 laboratorio Laboratorio didattico Alfa  

    Obiettivi formativi

    Prima parte: Teoria
    -------------------
    La parte di "Teoria" dell'insegnamento “Basi di dati” 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.

    Inoltre si forniranno allo studente le conoscenze necessarie per la progettazione di un sito web centrato sui dati. In particolare nel corso si illustrerà in dettaglio una metodologia per la progettazione logica di una applicazione web che interagisca con un sistema per la gestione di basi di dati (DBMS). Lo studente alla fine del corso sarà in grado di definire autonomamente le specifiche per la progettazione logica di una sito web centrato sui dati e di realizzare l'applicazione web che lo implementa usando l'approccio Model View Controller (MVC-2).
    Infine si presenteranno alcuni temi piu' specifici della multimedialità nella gestione di basi di dati, quali:
    * formati di memorizzazione e tecniche di compressione per immagini, suoni, e video;
    * XML
    * strutture dati multidimensionali.


    Seconda parte: Laboratorio
    --------------------------
    La parte di "Laboratorio" dell'insegnamento di "Basi di dati e Web" si propone di introdurre lo studente ai seguenti argomenti:

    * uso di un Database Management System (DBMS) per la creazione/gestione/interrogazione di una base di dati;
    * realizzazione di siti web dinamici che presentano informazioni memorizzate su basi di dati.

    Le tecnologie principali utilizzate nelle esercitazioni sono le servlet e le Java Server Pages (JSP), per cui si assume che lo studente abbia una discreta conoscenza del linguaggio di programmazione Java.

    Programma

    Prima parte: Teoria
    -------------------
    * 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. 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-trees e hashing).

    Le esercitazioni pratiche riguarderanno la progettazione logica di un sito web centrato sui dati e la sua implementazione in ambiente: Postgres, Servlet e Java Server Pages (JSP). Tali esercitazioni si svolgeranno nell’ambito del modulo di Laboratorio svolto in parallelo a questo modulo (per il programma dettagliato del laboratorio si veda la pagina web del modulo medesimo).

    * Server WEB: Richiami sulla rete Internet. Cenni al linguaggio HTML (struttura di un documento HTML, 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: CGI, approccio basato su estensioni del server WEB (servlet), immersione di codice in HTML (Java Server Pages - JSP). Interazione tra server HTTP e DBMS: libreria Java Database Connectivity (JDBC) e le classi Java bean. Architetture di riferimento per la realizzazione di una sito web centrato sui dati: Model View Controller (MVC-2).
    * Una metodologia per la realizzazione di siti web centrati sui dati: Fase 1: un linguaggio formale per la specifica del contenuto informativo e della struttura navigazionale di un sito web centrato sui dati. Fase 2: un linguaggio formale per la specifica della corrispondenza tra le pagine dinamiche del sito web e una base di dati.
    * Caratteristiche generali della multimedialità dei dati; tecniche di acquisizione di dati multimediali; formati di memorizzazione; compressione dei dati; tecniche di indicizzazione multidimensionale.

    Seconda parte: Laboratorio
    --------------------------
    1. Introduzione al DBMS PostgreSQL: Connessione ad un database, uso di semplici comandi di controllo, creazione di tabelle.
    2. PostgreSQL: vincoli di integrità, politiche di reazione alle violazioni dei vincoli di integrità referenziale.
    3. PostgreSQL: interrogazioni SQL semplici.
    4. PostgreSQL: interrogazioni SQL complesse.
    5. Linguaggio HTML: struttura di un documento HTML, marcatori fondamentali, tabelle.
    6. Linguaggio HTML: form.
    7. Installazione di un engine sul server WEB per la gestione delle servlet. Esempi di servlet semplici.
    8. Servlet e JDBC. Connessione ad un DBMS PostgreSQL. Uso di semplici servlet di interazione con DBMS: query semplici, composte.
    9. Java bean e servlet.
    10. Java Server Pages (JSP)
    11. JSP e servlet per un approccio di sviluppo Model View Controller.
    12. Servlet/JSP e dati multimediali.

    Modalità d'esame

    L'esame è orale. Per l'ammissione all'esame orale lo studente deve superare una prova scritta di 3 ore circa che consiste in alcuni esercizi sulla progettazione e interrogazione di una base di dati, in esercizi e domande sulla progettazione di un sito web centrato sui dati e sui dati multimediali, in alcune domande sulla parte di teoria e in un esercizio sulla parte di laboratorio. L'esercizio sulla parte di laboratorio verifica le capacità di progettare e realizzare una interfaccia ad un base di dati (anche multimediali) via WEB utilizzando l'approccio MVC-2 e la tecnologia JSP/Servlet.

    La prova scritta si intende superata se lo studente ottiene una votazione di almeno 18/30 negli esercizi relativi alla prima parte (teoria) e almeno 18/30 negli esercizi relativi alla parte di laboratorio. Il voto complessivo della prova scritta si ottiene calcolando la media pesata del voto relativo alla teoria (peso 3/4) e del voto relativo al laboratorio (peso 1/4).

    Alla prova orale lo studente può decidere di verbalizzare il voto della prova scritta o di essere riesaminato mediante colloquio. In tal caso il voto finale dell'esame sarà basato puramente sul colloquio senza tenere in alcun conto l'esito della prova scritta.

    Testi di riferimento
    Attività Autore Titolo Casa editrice Anno ISBN Note
    Teoria P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone Basi di dati: architetture e linee di evoluzione (Edizione 2) McGraw-Hill 2007 978-88-386-6370-3
    Teoria P. ATZENI, S. CERI, S. PARABOSCHI, R. TORLONE Basi di dati- Modelli e linguaggi di interrogazione (Edizione 3) McGraw-Hill 2009 9788838666001
    Teoria E. Baralis, A. Belussi, G. Psaila Basi di dati - Temi d'esame svolti (Edizione 1) Progetto Leonardo Società Editrice Esculapio Bologna 1999 B135655713
    Materiale didattico
    Titolo Formato (Lingua, Dimensione, Data pubblicazione)
    Algebra relazionale e Ottimizzazione  pdfpdf (it, 306 KB, 16/01/11)
    Applicazioni Web: dispensa  pdfpdf (it, 283 KB, 05/04/11)
    Applicazioni Web: esempio servlet e JDBC  pdfpdf (it, 147 KB, 04/04/11)
    Applicazioni Web: JavaBeans  pdfpdf (it, 351 KB, 23/05/11)
    Applicazioni Web: JDBC  pdfpdf (it, 320 KB, 29/03/11)
    Applicazioni Web: JSP  pdfpdf (it, 363 KB, 11/04/11)
    Applicazioni Web: metodologia di progettazione di siti web centrati sui dati  pdfpdf (it, 272 KB, 05/04/11)
    Applicazioni Web: MVC-2  pdfpdf (it, 339 KB, 23/05/11)
    Applicazioni Web: protocollo HTTP  pdfpdf (it, 272 KB, 28/03/11)
    Applicazioni Web: servlet  pdfpdf (it, 248 KB, 29/03/11)
    Dati multimediali: Codifica Huffman e LZW  pdfpdf (it, 327 KB, 09/05/11)
    Dati multimediali: codifica JPEG  pdfpdf (it, 688 KB, 09/05/11)
    Dati multimediali: introduzione e concetti di base  pdfpdf (it, 281 KB, 09/05/11)
    Dati multimediali: K-d-tree  pdfpdf (it, 294 KB, 23/05/11)
    DTD  pdfpdf (it, 267 KB, 02/05/11)
    Esercizi sul modello ER  pdfpdf (it, 72 KB, 11/10/10)
    Introduzione  pdfpdf (it, 2717 KB, 04/10/10)
    Lucidi MM su una pagina  zipzip (it, 1665 KB, 23/05/11)
    Lucidi Teoria su una pagina  zipzip (it, 3485 KB, 29/03/11)
    Lucidi Web su una pagina  zipzip (it, 2079 KB, 23/05/11)
    Lucidi XML su una pagina  zipzip (it, 1768 KB, 19/04/11)
    Progettazione logica  pdfpdf (it, 3616 KB, 30/11/10)
    Seconda prova intermedia: tema d'esame risolto  pdfpdf (it, 291 KB, 09/06/11)
    SQL - prima parte  pdfpdf (it, 234 KB, 17/01/11)
    SQL - seconda parte  pdfpdf (it, 193 KB, 18/01/11)
    SQL - terza parte  pdfpdf (it, 229 KB, 30/01/11)
    Strutture fisiche: prima parte (file sequenziale, indici primari e secondari)  pdfpdf (it, 431 KB, 22/03/11)
    Strutture fisiche: seconda parte (B+-tree e Hashing)  pdfpdf (it, 805 KB, 22/03/11)
    Temi d'esame  zipzip (it, 1047 KB, 09/05/11)
    Transazioni  pdfpdf (it, 216 KB, 02/03/11)
    Transazioni: gestione della concorrenza - prima parte  pdfpdf (it, 355 KB, 14/03/11)
    Transazioni: gestione della concorrenza - seconda parte  pdfpdf (it, 384 KB, 21/03/11)
    XML  pdfpdf (it, 745 KB, 19/04/11)
    XML: esercizio  pdfpdf (it, 141 KB, 02/05/11)
    XML: esercizio soluzione  pdfpdf (it, 124 KB, 23/05/11)
    XML-Schema  pdfpdf (it, 800 KB, 02/05/11)
    Esercitazione 01: esercizio  pdfpdf (it, 44 KB, 01/03/11)
    Esercitazione 01: lucidi  pdfpdf (it, 588 KB, 01/03/11)
    Esercitazione 02: esercizio  pdfpdf (it, 132 KB, 08/03/11)
    Esercitazione 02: lucidi  pdfpdf (it, 1100 KB, 08/03/11)
    Esercitazione 03: esercizio  pdfpdf (it, 74 KB, 15/03/11)
    Esercitazione 03: lucidi  pdfpdf (it, 544 KB, 15/03/11)
    Esercitazione 04: esercizio  pdfpdf (it, 128 KB, 22/03/11)
    Esercitazione 04: lucidi  pdfpdf (it, 401 KB, 22/03/11)
    Esercitazione 05: esercizio  pdfpdf (it, 50 KB, 29/03/11)
    Esercitazione 05: lucidi  pdfpdf (it, 1654 KB, 29/03/11)
    Esercitazione 06: esercizio  pdfpdf (it, 40 KB, 05/04/11)
    Esercitazione 06: lucidi  pdfpdf (it, 994 KB, 05/04/11)
    Esercitazione 06: tomcat  zipzip (it, 34 KB, 05/04/11)
    Esercitazione 07: esercizio  pdfpdf (it, 77 KB, 12/04/11)
    Esercitazione 07: lucidi  pdfpdf (it, 750 KB, 12/04/11)
    Esercitazione 07: servlet con bean  zipzip (it, 4 KB, 12/04/11)
    Esercitazione 07: servlet senza bean  zipzip (it, 2 KB, 12/04/11)
    Esercitazione 08: Corsi.jsp  octet-streamoctet-stream (it, 1 KB, 19/04/11)
    Esercitazione 08: EsempiJSP  zipzip (it, 1 KB, 19/04/11)
    Esercitazione 08: esercizio  pdfpdf (it, 42 KB, 19/04/11)
    Esercitazione 08: lucidi  pdfpdf (it, 747 KB, 19/04/11)
    Esercitazione 09: daFare.jsp  octet-streamoctet-stream (it, 0 KB, 03/05/11)
    Esercitazione 09: ElencoCorsiStudio.jsp  octet-streamoctet-stream (it, 0 KB, 03/05/11)
    Esercitazione 09: esercizio  pdfpdf (it, 47 KB, 03/05/11)
    Esercitazione 09: lucidi  pdfpdf (it, 360 KB, 03/05/11)
    Esercitazione 09: main.java  octet-streamoctet-stream (it, 3 KB, 03/05/11)
    Esercitazione 10: esercizio  pdfpdf (it, 65 KB, 17/05/11)
    Esercitazione 10: libreria cos  octet-streamoctet-stream (it, 55 KB, 17/05/11)
    Esercitazione 10: lucidi  pdfpdf (it, 544 KB, 17/05/11)
    Esercitazione 10: photos.JPS  x-gzipx-gzip (it, 0 KB, 17/05/11)
    Esercitazione 10: photos.src  x-gzipx-gzip (it, 4 KB, 17/05/11)
    Esercitazione 10: photos.webapp  x-gzipx-gzip (it, 77 KB, 17/05/11)
    Esercitazione 11: classi COMMAND, comando EXPLAIN, cenni a portle e AJAX  pdfpdf (it, 1924 KB, 24/05/11)
    Laboratorio di basi di dati e MM: Tema d'esame  pdfpdf (it, 217 KB, 10/05/11)
    Laboratorio di basi di dati e Web: Tema d'esame  pdfpdf (it, 216 KB, 10/05/11)

    Statistiche per i requisiti di trasparenza (Attuazione Art. 2 del D.M. 31/10/2007, n. 544)

    Statistiche esiti
    Esiti Esami Esiti Percentuali Media voti Deviazione Standard
    Positivi 43.47% 26 3
    Respinti 18.47%
    Assenti 7.60%
    Ritirati 26.08%
    Annullati 4.34%
    Distribuzione degli esiti positivi
    18 19 20 21 22 23 24 25 26 27 28 29 30 30 e Lode
    0.0% 0.0% 2.5% 10.0% 2.5% 5.0% 15.0% 2.5% 7.5% 15.0% 0.0% 15.0% 10.0% 15.0%

    Valori relativi all'AA 2010/2011 calcolati su un totale di 92 iscritti. I valori in percentuale sono arrotondati al numero intero più vicino.