Studiare

In questa sezione è possibile reperire le informazioni riguardanti l'organizzazione pratica del corso, lo svolgimento delle attività didattiche, le opportunità formative e i contatti utili durante tutto il percorso di studi, fino al conseguimento del titolo finale.

Queste informazioni sono destinate esclusivamente agli studenti e alle studentesse già iscritti a questo corso.
Se sei un nuovo studente interessato all'immatricolazione, trovi le informazioni sul percorso di studi alla pagina del corso:

Laurea in Informatica - Immatricolazione dal 2025/2026

Il piano didattico è l'elenco degli insegnamenti e delle altre attività formative che devono essere sostenute nel corso della propria carriera universitaria.
Selezionare il piano didattico in base all'anno accademico di iscrizione.

2° Anno  Attivato nell'A.A. 2014/2015

InsegnamentiCreditiTAFSSD
12
B
INF/01
6
C
FIS/01
Un insegnamento a scelta tra i seguenti
12
B
ING-INF/05

3° Anno  Attivato nell'A.A. 2015/2016

InsegnamentiCreditiTAFSSD
12
B
ING-INF/05
Un insegnamento a scelta tra i seguenti
Prova finale
6
E
-
Attivato nell'A.A. 2014/2015
InsegnamentiCreditiTAFSSD
12
B
INF/01
6
C
FIS/01
Un insegnamento a scelta tra i seguenti
12
B
ING-INF/05
Attivato nell'A.A. 2015/2016
InsegnamentiCreditiTAFSSD
12
B
ING-INF/05
Un insegnamento a scelta tra i seguenti
Prova finale
6
E
-

Legenda | Tipo Attività Formativa (TAF)

TAF (Tipologia Attività Formativa) Tutti gli insegnamenti e le attività sono classificate in diversi tipi di attività formativa, indicati da una lettera.




S Stage e tirocini presso imprese, enti pubblici o privati, ordini professionali

Codice insegnamento

4S00037

Crediti

12

Coordinatore

Alberto Belussi

Lingua di erogazione

Italiano

Offerto anche nei corsi:

Settore Scientifico Disciplinare (SSD)

ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

L'insegnamento è organizzato come segue:

Teoria

Crediti

6

Periodo

I semestre

Tecnologie per le basi di dati

Crediti

3

Periodo

II semestre

Laboratorio

Crediti

3

Periodo

II semestre

Obiettivi formativi

Modulo: Teoria
----------------------------
Questo modulo ha lo scopo di fornire allo studente le conoscenze necessarie per la progettazione di una base di dati. 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 (sistemi basati sul modello relazionale). Si illustreranno inoltre le caratteristiche dei seguenti linguaggi di interrogazione: algebra relazionale e SQL.

Modulo: Tecnologie per le basi di dati
-------------------------------------------------
In questo modulo si forniranno allo studente le conoscenze necessarie per comprendere ed utilizzare in modo efficace i sistemi per la gestione di basi di dati relazionali (Relational Data Base Management Systems - RDBMS). In particolare nel corso si illustreranno in dettaglio le caratteristiche principali di un DBMS relazionale (transazioni, concorrenza, gestione dei guasti, indici), i metodi per interagire con tale sistema da un programma Java (JDBC) e progettazione di un'applicazione web centrata sui dati (MVC).
Infine, uscendo dall'ambito strettamente relazionale, si presenteranno alcuni modelli per la rappresentazione dei dati in modo semi-strutturato, in particolare: XML, XML schema e UML per i dati (cenni).

Modulo: Laboratorio
-----------------------
Questo modulo si propone di introdurre lo studente ai seguenti argomenti:

- Introduzione al relational data stream management system (RDBMS) PostgreSQL.
- Introduzione all'uso di SQL-2 in PostgreSQL (con estensioni).
- Ottimizzazione di query.
- Introduzione alle transazioni.
- Introduzione al linguaggio Python.
- Accesso alla basi dati da programmi Java o Python.
- Introduzione al microframework Flask (Python) e allo sviluppo di semplici applicazioni web basate su basi di dati.

Le tecnologie principali utilizzate nelle esercitazioni sono basate sul linguaggio Python, che sarà introdotto durante il corso.
Si assume lo studente abbia una buona conoscenza di un linguaggio di programmazione ad oggetti.

Programma

Modulo: 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 di una bes di dati; 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; regole per la traduzione di schemi concettuali in schemi relazionali.
* 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 in SQL; il costrutto di inserimento, cancellazione e aggiornamento (Insert, Delete, Update) in SQL; il concetto di vista.

Modulo: Tecnologie per le basi di dati
--------------------------------------
* L'architettura interna di un sistema per la gestione di basi di dati (DBMS): rilevanza dei sistemi transazionali, concetto di transazione, proprietà di una transazione, 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), esecuzione e ottimizzazione di interrogazioni.
* Interazione tra DBMS e applicazioni: libreria Java Database Connectivity (JDBC), architetture di riferimento per la realizzazione di applicazioni che interagiscono con un DBMS (Model View Controller (MVC-2)), il paradigma MVC-2 e le applicazioni web.
* XML: caratteristiche generali, definizione di una sintassi XML usando XML schema, uso di UML per la progettazione concettuale di dati XML (cenni).

Modulo: Laboratorio
-------------------
- Introduzione al relational data stream management system (RDBMS) PostgreSQL.
- Introduzione all'uso di SQL-2 in PostgreSQL (con estensioni).
- Ottimizzazione di query.
- Introduzione alle transazioni.
- Introduzione al linguaggio Python.
- Accesso alla basi dati da programmi Java o Python.
- Introduzione al microframework Flask (Python) e allo sviluppo di semplici applicazioni web basate su basi di dati.

Bibliografia

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 (Edizione 4) McGraw-Hill 2014 978-88-386-6587-5
Teoria E. Baralis, A. Belussi, G. Psaila Basi di dati - Temi d'esame svolti (Edizione 1) Progetto Leonardo Società Editrice Esculapio Bologna 1999 B135655713
Teoria R. Elmasri, S.H. Navathe Sistemi di Basi di Dati: Fondamenti (Edizione 6) Pearson 2011 978-88-7192-628-5

Modalità d'esame

L'esame è diviso in due parti:
- per i moduli "Teoria" e "Tecnologie per le basi di dati" è prevista una prova scritta di 2,5 ore circa che consiste in un esercizio sulla progettazione concettuale e logica di una base di dati, in alcuni esercizi sulle interrogazioni in algebra relazionale e SQL di una base di dati, in alcuni esercizi su XML e in alcune domande sulla parte di teoria.
- per il modulo di "Laboratorio" è prevista una prova scritta di 1,5 ore circa che consiste in quattro esercizi di difficoltà crescente sul programma del modulo.

L'esame si intende superato se lo studente ottiene una votazione di almeno 18/30 nella prima parte (teoria e tecnologie per le basi di dati) e almeno 18/30 nella parte di laboratorio. Il voto complessivo si ottiene calcolando la media pesata del voto relativo alla teoria (peso 3/4) e del voto relativo al laboratorio (peso 1/4).

Sono previsti 4 appelli in totale: due appelli a giugno/luglio 2016, un appello a settembre 2016 e un appello a febbraio 2017.
Sono previste inoltre una prova intermedia per il modulo di teoria a marzo 2016 e una prova intermedia per il modulo di tecnologie per le basi di dati a giugno 2016 (queste due prove intermedie insieme sostituiscono la prima parte dell'esame).

Le/gli studentesse/studenti con disabilità o disturbi specifici di apprendimento (DSA), che intendano richiedere l'adattamento della prova d'esame, devono seguire le indicazioni riportate QUI