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.
Piano Didattico
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/2026Il 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.
1° Anno
Insegnamenti | Crediti | TAF | SSD |
---|
2° Anno Attivato nell'A.A. 2014/2015
Insegnamenti | Crediti | TAF | SSD |
---|
3° Anno Attivato nell'A.A. 2015/2016
Insegnamenti | Crediti | TAF | SSD |
---|
Un insegnamento a scelta tra i seguenti
Insegnamenti | Crediti | TAF | SSD |
---|
Insegnamenti | Crediti | TAF | SSD |
---|
Insegnamenti | Crediti | TAF | SSD |
---|
Un insegnamento a scelta tra i seguenti
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.
Basi di dati (2015/2016)
Codice insegnamento
4S00037
Crediti
12
Lingua di erogazione
Italiano
Offerto anche nei corsi:
- Basi di dati per bioinformatica del corso Laurea in Bioinformatica [L-31]
Settore Scientifico Disciplinare (SSD)
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
L'insegnamento è organizzato come segue:
Teoria
Tecnologie per le basi di dati
Laboratorio
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
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).