Basi di dati (2017/2018)



Codice insegnamento
4S00037
Crediti
12
Coordinatore
Alberto Belussi
Settore disciplinare
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Lingua di erogazione
Italiano
L'insegnamento è organizzato come segue:
Attività Crediti Periodo Docenti Orario
Teoria 6 I sem. Alberto Belussi

Vai all'orario delle lezioni

Tecnologie per le basi di dati 3 II sem. Alberto Belussi

Vai all'orario delle lezioni

Laboratorio 3 II sem. Roberto Posenato

Vai all'orario delle lezioni

Obiettivi formativi

Il corso si propone di fornire le competenze necessarie per:
(i) la progettazione dei dati in funzione dei requisiti con riferimento a diversi contesti applicativi e nell'ambito del processo di produzione di sistemi software;
(ii) la gestione e fruizione efficace ed efficiente dei dati;
(iii) l'uso di un sistema per la gestione di basi di dati relazionali al fine di creare, gestire e interrogare basi di dati;
(iv) lo sviluppo di applicazioni che interagiscono con basi di dati relazionali.

Al termine del corso lo studente dovrà dimostrare di avere conoscenze e capacità di comprensione dei modelli dei dati e dei linguaggi di interrogazione che caratterizzano i sistemi per la gestione dei dati e conoscenza dei meccanismi fondamentali per sviluppare applicazioni che interagiscano con una base di dati; avere capacità di applicare le conoscenze acquisite e capacità di comprensione per la progettazione di una collezione di dati in modo efficace rispetto ad un insieme di requisiti applicativi, capacità di interrogare e fruire in modo efficiente dei dati gestiti da un sistema, capacità di progettare e implementare un'applicazione che interagisce con una base di dati; saper sviluppare le competenze necessarie per proseguire gli studi in modo autonomo nell’ambito dei sistemi per la gestione dei dati e dello sviluppo di soluzioni software.

Programma

Il programma viene specificato di seguito per ogni modulo.

Modulo di 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 base 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; ottimizzazione di espressioni dell'algebra; il linguaggio SQL; il costrutto di selezione (Select-From-Where), interrogazioni nidificate, ordinamento e raggruppamento dei dati in SQL; il concetto di vista.

Modalità di erogazione della didattica: lezioni frontali, esercitazioni in aula con il docente, materiale didattico (lucidi) ed esercizi ulteriori disponibili sulla piattaforma eLearning, ricevimento negli orari indicati sulla pagina web del docente.

Modulo di Laboratorio
--------------------------------
- Introduzione al relational data base 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 micro-framework Flask (Python) e allo sviluppo di semplici applicazioni web basate su basi di dati.

Modalità di erogazione della didattica: lezioni frontali in aula ed esercitazioni in laboratorio informatico, materiale didattico (lucidi) ed ulteriori esercizi sulla piattaforma eLearning, ricevimento individuale negli orari concordati con il docente.

Modulo di 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.
- XML: caratteristiche generali, definizione di una sintassi XML usando XML schema, uso di UML per la progettazione concettuale di dati XML (cenni).

Modalità di erogazione della didattica: lezioni frontali, esercitazioni in aula con il docente, materiale didattico (lucidi) ed esercizi ulteriori disponibili sulla piattaforma eLearning, ricevimento negli orari indicati sulla pagina web del docente.

Modalità d'esame

L'esame è composto di due parti: teoria e laboratorio.

Per superare l'esame gli studenti dovranno dimostrare di:
- aver compreso i concetti che stanno alla base della teoria delle basi di dati relazionali e della loro progettazione e implementazione sui sistemi per la gestione di basi di dati relazionali
- essere in grado di esporre le proprie argomentazioni in modo preciso e organico senza divagazioni
- saper applicare le conoscenze acquisite per risolvere problemi applicativi presentati sotto forma di esercizi, domande e progetti.

Moduli di Teoria e Tecnologie per le basi di dati
--------------------------------------------------------------------
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 (modello E-R) e logica (modello relazionale) di una base di dati, in alcuni esercizi sulle interrogazioni in algebra relazionale e SQL su una base di dati assegnata, in alcuni esercizi su XML e XML-Schema e in alcune domande sulla parte di teoria. Nella sezione TEMI D'ESAME E ALTRI ESERCIZI RIEPILOGATIVI della piattaforma eLearning sono disponibili temi d'esame degli anni precedenti.
E' possibile inoltre durante l'anno sostenere delle prove in itinere: tali prove sono fissate dal docente in accordo con gli studenti e vengono gestite sulla piattaforma eLearning. Si tratta di tre prove: la prima prova sulla progettazione di una base di dati relazionale: progettazione concettuale (modello E-R) e logica (modello relazionale), tale prova pesa 4/9 del voto di teoria; la seconda prova sull'interrogazione di una base di dati relazionale in algebra relazionale e SQL, tale prova pesa 3/9 del voto di teoria; infine, la terza prova sul programma del modulo di Tecnologie per le basi di dati, quest'ultima prova pesa 2/9 del voto di teoria.

Modulo di Laboratorio
---------------------------------
L'esame consiste in una prova scritta costituita da 5 esercizi a difficoltà crescente sugli argomenti del programma.
Lo studente che ottiene una valutazione inferiore a 13/30 in una prova, una volta che avrà conseguito almeno 18/30 in una prova successiva dovrà anche sostenere una prova orale.
Il voto finale sarà quindi la media del voto della prova scritta e della prova orale.
Il voto di questo modulo vale 1/4 del voto finale. Una selezione dei temi d'esame è presente alla pagina http://profs.scienze.univr.it/~posenato/courses/labBD/raccoltaTemiEsameLaboratorioBasiDatiDal2016.pdf

La valutazione finale in trentesimi si ottiene facendo la media pesata del voto ottenuto nella prova di teoria (peso = 3/4) e del voto ottenuto nella prova di laboratorio (peso = 1/4).

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
Tecnologie per le basi di dati P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone Basi di dati (Edizione 4) McGraw-Hill 2014 978-88-386-6587-5
Laboratorio Autori Vari Flask (http://flask.pocoo.org/) Flask 2016
Laboratorio Autori Vari Manuale di Postgresql (https://www.postgresql.org/docs/9.6) Postgresql 2016

Opinione studenti frequentanti - 2016/2017


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

I dati relativi all'AA 2017/2018 non sono ancora disponibili