Nuova ricerca

Laura PO

Professore Associato
Dipartimento di Ingegneria "Enzo Ferrari"

Insegnamento: Sistemi Informativi

Ingegneria gestionale (Offerta formativa 2021)

Obiettivi formativi

Il corso vuole fornire le conoscenze e le competenze necessarie per la gestione di dati nei sistemi informativi. Uno degli obiettivi del corso consiste nel far apprendere agli studenti i concetti fondamentali riguardanti le basi di dati (database), con particolare riferimento al modello relazionale e al modello Entity-Relationship (ER). Un altro obiettivo del corso è quello di introdurre il linguaggio SQL per creare e gestire una base di dati, anche attraverso esempi ed esercizi. Infine, il corso si propone di mostrare gli strumenti che consentono di connettersi a una base di dati da programma, usando il linguaggio di programmazione Python, e che consentono di visualizzare i dati all’interno di semplici applicazioni Web.
Per una più completa comprensione degli obiettivi formativi si rimanda alla lettura dei risultati di apprendimento attesi.

Prerequisiti

Conoscenza di base del linguaggio Python. Non sono previste propedeuticità obbligatorie.

Programma del corso

La scansione dei contenuti per CFU è da intendersi come indicativa e può subire lievi variazioni nel corso dell’insegnamento, anche alla luce dei feedback degli studenti. Il corso è suddiviso in tre macro-argomenti:
Progettazione concettuale e progettazione logica di una base di dati (3 CFU, Prof.ssa Po):
- Modello concettuale dei dati Entity-Relationships (ER)
- Progettazione da requisiti in linguaggio naturale
- Modello relazionale e elementi di teoria relazionale
- Progettazione logica relazionale
- Metodologie di traduzione da ER e schema logico relazionale

Generalità sui sistemi di gestione per basi di dati (DBMS) e introduzione al linguaggio standard SQL92 (6 CFU, Prof.ssa Hadjidimitriou):
- Introduzione al DBMS PostgreSQL
- Introduzione al linguaggio SQL
- Creazione di database e tabelle
- Inserimento, modifica e cancellazione di dati
- Interrogazioni: join e raggruppamento
- Interrogazioni spaziali

Accesso a una base di dati da programma e visualizzazione dei dati tramite applicazioni Web (3 CFU, Prof.ssa Monica):
- Accesso a una base di dati da programma usando il linguaggio Python
- Interrogazione di una base di dati da programma
- Introduzione a HTML e CSS per la creazione di semplici pagine Web
- Creazione di pagine Web dinamiche per visualizzare dati letti da una base di dati

Metodi didattici

L’insegnamento viene erogato in presenza. I metodi didattici prevedono lezioni frontali. Nel corso delle lezioni frontali saranno affrontati gli aspetti teorici degli argomenti oggetto del corso e saranno inoltre mostrati opportuni esempi ed esercizi. Le lezioni frontali si svolgono con l’ausilio di presentazioni Power Point e/o PDF. Il materiale utilizzato durante tutto il corso (presentazioni, esercizi, programmi, …) sarà reso disponibile per gli studenti sulla piattaforma Dolly.
Le informazioni riportate in precedenza sono valide qualora la situazione sanitaria consenta di effettuare tutte le lezioni completamente in presenza. Se l’emergenza sanitaria continuerà, verranno adottate le misure suggerite dal Dipartimento e dall’Ateneo per consentire di svolgere le lezioni in modalità mista o completamente a distanza.
L’insegnamento è erogato in lingua italiana e la frequenza non è obbligatoria.

Testi di riferimento

Domenico Beneventano, Sonia Bergamaschi, Francesco Guerra, Maurizio Vincini: Progetto di Basi di Dati Relazionali: lezioni ed esercizi, Pitagora editrice - Bologna (ristampa 2007).

Le slide e il materiale utilizzato durante le lezioni sono condivisi con gli studenti sulla piattaforma Dolly.

Verifica dell'apprendimento

La prova finale consiste in un esame orale obbligatorio che è strutturato in tre parti, così come l'insegnamento stesso. In aggiunta, gli studenti possono preparare un progetto facoltativo secondo le modalità specificate nel seguito.

Informazioni sulla prova orale (obbligatoria)
- La prova è strutturata in tre parti, che si tengono di norma con tre docenti diversi.
- Per ognuna delle tre parti il docente attribuirà e comunicherà allo studente un voto numerico compreso tra 0 e 30 e lode. Per ognuna delle tre parti, la sufficienza è fissata a 16.
Il voto finale si ottiene come media pesata dei tre voti ottenuti in ognuna delle tre parti, a condizione che ognuna delle tre parti sia risultata sufficiente. In altre parole, l’esame si ritiene superato se lo studente risulta sufficiente in ognuna delle tre parti. Per questo motivo, se uno studente risulta insufficiente in una parte (voto minore di 16), non è ammesso alle eventuali parti successive e dovrà ripetere l’esame in un appello successivo. Coerentemente con il numero di CFU attribuiti ai tre macro-argomenti, i pesi attribuiti ai tre voti ottenuti nelle tre parti della prova sono:
Parte ER/Relazionale: ¼
Parte SQL: ½
Parte Python/Applicazioni Web: ¼
- L’esame si ritiene superato se il voto finale (ottenuto come media pesata dei voti delle tre parti) è maggiore o uguale a 18. Il voto finale viene comunicato agli studenti al termine della terza parte della prova orale.

Informazioni sulla tesina (facoltativa)
- In aggiunta alla prova orale (obbligatoria), gli studenti possono preparare una tesina facoltativa secondo le modalità indicate durante le lezioni e reperibili sulla pagina Dolly dell'insegnamento. La tesina consiste in un progetto di modellazione di un caso di studio scelto dallo studente e che include modellazione ER, modellazione relazionale, script e query SQL e interrogazioni in python. La tesina viene consegnata accompagnata da una relazione in formato PDF che ne descrive il progetto.
- La tesina viene valutata da 0 a 3 punti che si andranno a sommare al voto finale della prova orale, solo nel caso in cui questo sia già maggiore o uguale a 18. Il voto attribuito alla tesina viene comunicato agli studenti all’inizio della prima parte della prova orale.
- Per gli studenti che si presentano alla prova orale con la tesina è previsto che l’esame preveda esercizi basati sul progetto stesso.
- La tesina deve essere inviata ai docenti almeno 10 giorni prima della data dell’appello a cui lo studente intende partecipare.
- La tesina può essere consegnata una sola volta. Gli studenti che si presentano a un appello con tesina e risultano insufficienti nella prova orale dovranno iscriversi a un appello successivo e sosterranno la prova orale come gli studenti senza tesina. A seguito del superamento dell’esame, il voto attribuito alla tesina verrà comunque aggiunto.

Gli esami si svolgono secondo il calendario ufficiale degli appelli d’esame. Non sono previste prove intermedie. Lo studente che intenda sostenere l’esame in un dato appello è tenuto a iscriversi per tempo all’appello stesso, utilizzando la piattaforma Esse3. Al termine di ogni appello i voti verranno caricati su Esse3. Gli studenti potranno decidere di rifiutare il voto entro la data che sarà comunicata contestualmente all’invio dei risultati. In caso di mancato rifiuto del voto entro i termini previsti, il voto sarà considerato accettato e verrà verbalizzato.

Risultati attesi

Conoscenza e capacità di comprensione: Al termine del corso, si auspica che gli studenti:
- Abbiano solide conoscenze e capacità di comprensione nell'ambito della teoria delle basi di dati
- Sappiano analizzare i requisiti e le metodologie di progettazione concettuale e logica
- Conoscano e comprendano le tecniche di interrogazione e le principali tecnologie utilizzate in un DBMS transazionale
- Siano in grado di scrivere programmi in Python che consentano di interrogare un database
- Abbiano la capacità di creare semplici pagine Web dinamiche che consentano di visualizzare dati letti da un database
Capacità di applicare conoscenza e comprensione: Al termine del corso, si auspica che gli studenti:
- Sappiano applicare le conoscenze acquisite per la progettazione e l’implementazione di una base di dati
- Sappiano applicare le conoscenze acquisite per gestire e interrogare una base di dati
- Sappiano applicare le conoscenze acquisite per interagire con una base di dati utilizzando il linguaggio di programmazione Python.
Autonomia di giudizio: Al termine del corso, si auspica che gli studenti:
- Siano in grado di verificare il proprio grado di apprendimento e comprensione dei concetti esposti durante il corso, grazie alla risoluzione di esercizi proposti durante il corso
- Siano in grado di valutare soluzioni nell’ambito della gestione di dati
Abilità comunicative Al termine del corso, si auspica che gli studenti:
- Siano in grado di esprimere le proprie conoscenze in modo corretto e logico, rispondendo in modo puntuale alle domande d’esame
- Siano in grado di presentare gli argomenti oggetto dell’insegnamento con chiarezza e con un linguaggio tecnico appropriato.
Capacità di apprendimento: Al termine del corso, si auspica che gli studenti:
- Abbiano acquisito gli strumenti metodologici per proseguire con profitto il proprio percorso universitario
- Abbiano acquisito le competenze necessarie per provvedere autonomamente al proprio aggiornamento, particolarmente cruciale nell’ambito della gestione dell'informazione, dove la tecnologia è in continua evoluzione