Seleziona l'Anno Accademico:     2016/2017 2017/2018 2018/2019 2019/2020 2020/2021 2021/2022
Docente
GIORGIO GIACINTO (Tit.)
Periodo
Primo Semestre 
Modalità d'Erogazione
Convenzionale 
Lingua Insegnamento
ITALIANO 



Informazioni aggiuntive

Corso Percorso CFU Durata(h)
[70/89]  INGEGNERIA ELETTRICA, ELETTRONICA E INFORMATICA [89/30 - Ord. 2016]  INFORMATICA 6 60
[70/89]  INGEGNERIA ELETTRICA, ELETTRONICA E INFORMATICA [89/66 - Ord. 2016]  INFORMATICA ON LINE E IN PRESENZA (BLENDED) 6 60

Obiettivi

Il corso di Basi di Dati ha l’obiettivo di fornire le conoscenze, competenze e abilità. relative alla progettazione, realizzazione ed esercizio di una base di dati relazionale, fornendo elementi del linguaggio SQL e cenni sui modelli di dati che recentemente stanno affiancando il modello relazionale, noti con il nome NoSQL. Nel dettaglio, gli obiettivi formativi, declinati secondo i Descrittori di Dublino, e in accordo con gli obiettivi formativi del Corso di Laurea in Ingegneria Elettrica, Elettronica e Informatica, sono i seguenti:

Conoscenza e comprensione.
L’insegnamento ha l’obiettivo di far conoscere e comprendere allo studente il modello dei dati che sottende i sistemi di gestione di basi di dati relazionali, e le metodologie operative di progettazione, realizzazione, esercizio e manutenzione dei sistemi di basi di dati relazionali. In particolare, per quanto riguarda la fase di progettazione si farà riferimento al modello ER, mentre per la realizzazione e l’esercizio al linguaggio SQL. Verranno inoltre fornite le conoscenze di base relative ai modelli di dati di recente introduzione e utilizzo in ambito operativo, definiti all’interno del cosiddetto movimento NoSQL.

Capacità di applicare conoscenza e comprensione.
Gli studenti saranno messi in grado di applicare le conoscenze acquisite attraverso la progettazione di semplici schemi di basi di dati relazionali e delle relative interrogazioni, utilizzando il modello ER per la progettazione, e il linguaggio SQL per la formulazione delle interrogazioni. Verranno utilizzati allo scopo strumenti software open-source utilizzati in ambito aziendale. Lo studente dovrà inoltre poter effettuare l’analisi del costo computazionale dell’esecuzione delle interrogazioni e l’occupazione di memoria.

Autonomia di giudizio.
Gli studenti saranno in grado di valutare le diverse alternative in fase di progettazione di una base di dati relazionale in tutte le sue fasi: progettazione concettuale, progettazione delle interrogazioni, scelta degli indici. Le alternative saranno valutate in base alla rispondenza ai requisiti di progetto, alla manutenibilità ed evoluzione della base di dati, e alle prestazioni che dovranno essere garantite in fase di esercizio. Inoltre, la conoscenza dei modelli di dati del movimento NoSQL recentemente introdotti, consentirà loro di individuare in quali casi può essere vantaggioso l’uso di uno di questi modelli in sostituzione o in affiancamento al modello relazionale.

Abilità comunicative.
In fase di progettazione di una base di dati, il progettista informatico deve dialogare con il committente, che esprimerà i requisiti della applicazione da sviluppare in linguaggio naturale. Compito del progettista informatico è saper tradurre i requisiti espressi in linguaggio naturale, in specifiche rappresentate nel modello dei dati prescelto, evidenziando i casi ambigui o dubbi e formulando le relative domande chiarificatrici al committente. Il corso di basi di dati fornirà agli studenti le basi delle capacità comunicative necessarie a realizzare il dialogo con il committente nelle diverse fasi dello sviluppo.

Capacità di apprendimento.
In diverse occasioni del corso lo studente sarà invitato a consultare diversi riferimenti bibliografici e tecnici, soprattutto in lingua inglese, con lo scopo principale di acquisire la capacità di aggiornare continuamente le proprie conoscenze. In particolare, l’ultima parte del corso è dedicata a presentare alcuni degli sviluppi più recenti nell’ambito delle basi dati, attraverso la consultazione dei principali siti Internet di aggiornamento professionale in ambito informatico.

Prerequisiti

Conoscenze.
E’ necessario che lo studente abbia completato lo studio del corso di base di informatica relativamente alla rappresentazione dell’informazione, la struttura di base di un elaboratore, la conoscenza degli algoritmi di base per la manipolazione dei dati (ad es., algoritmi di ricerca binaria e di ordinamento) e la programmazione con linguaggi di alto livello.

Abilità.
Lo studente deve saper tradurre algoritmi di bassa complessità in istruzioni di linguaggi di alto livello.

Competenze
Lo studente dovrà avere padronanza con il linguaggio e gli strumenti logico-matematici acquisiti nel primo anno del corso di Ingegneria.

E' auspicabile che lo studente abbia superato positivamente l'esame del corso integrato "Sistemi di elaborazione dell’informazione".

Contenuti

Generalità e architettura delle Basi di Dati (4 ore teoria)

Il modello relazionale: definizione di tabelle e interrogazioni usando il linguaggio SQL e l'algebra relazionale (10 ore teoria - 6 ore esercitazione)

Progettazione concettuale attraverso il modello ER e traduzione nel modello logico (tabelle SQL) (7 ore teoria - 3 ore esercitazione)

Normalizzazione di Basi di Dati (4 ore teoria - 2 ore esercitazione)

Integrazione SQL e linguaggi di programmazione (4 ore teoria - 2 ore esercitazione)

Organizzazione dei file e progettazione di indici (6 ore teoria - 2 ore esercitazione)

Esecuzione delle interrogazioni e progettazione fisica (2 ore teoria)

Sicurezza delle Basi di Dati (2 ore teoria)

Generalità sui sistemi DBMS "NoSQL" (4 ore teoria - 2 ore esercitazione)

Metodi Didattici

Il corso è organizzato con
- lezioni frontali con supporto di presentazioni grafiche
- esercitazioni basate sul DBMS PostgreSQL e su DBMS "NoSQL"
- un seminario o visita di istruzione

Il materiale didattico è disponibile nel sito ufficiale del corso http://people.unica.it/giorgiogiacinto/didattica/insegnamenti/materiale-didattico/basi-di-dati/.

Il docente è disponibile a fornire spiegazioni e chiarimenti sia durante l'intervallo fra ore consecutive di lezione, sia durante l'orario di ricevimento, sia a mezzo posta elettronica.

Per soddisfare esigenze didattiche specifiche connesse alla situazione epidemiologica, è prevista la possibilità di lezioni in diretta streaming. Inoltre, le esercitazioni potranno essere svolte mediante forme di interazione a distanza con i supporti informatici disponibili.

Verifica dell'apprendimento

La verifica dell’apprendimento viene effettuata attraverso una prova scritta contenente quesiti che coprono l’intero programma del corso. In particolare io studente dovrà:
- formulare una interrogazione in linguaggio SQL e mostrare una delle alternative per eseguirla all’interno di un programma scritto in un linguaggio di alto livello.
- formulare una interrogazione in algebra relazionale
- realizzare la progettazione concettuale con il modello ER di una realtà descritta in linguaggio naturale e tradurre il modello concettuale in uno schema relazionale
- individuare le chiavi candidate di una relazione, la sua forma normale, ed eventualmente normalizzare la realizzazione attraverso le metodologie delle dipendenze funzionali
- proporre uno o più indici per l’esecuzione di una interrogazione, calcolandone lo spazio aggiuntivo in memoria e l’incremento di prestazioni
- illustrare le principali caratteristiche relative alla protezione e sicurezza dei dati
- illustrare le motivazioni alla base dello sviluppo del movimento NoSQL o illustrare uno dei modelli di dati.

A ciascun esercizio è assegnato un punteggio massimo. Ciascun esercizio viene valutato con un punteggio compreso fra 0 e il punteggio massimo assegnato. Il punteggio massimo viene assegnato in caso di risposta corretta, mentre viene assegnato un punteggio inferiore in presenza di errori. Errori di distrazione o dovute a incomprensioni del testo attribuibili a possibili ambiguità nel testo stesso, avranno un peso inferiore rispetto a errori concettuali chiaramente causati da una conoscenza parziale dell’argomento.

Il voto finale si ottiene come somma dei punteggi ottenuti in ciascun esercizio. Il punteggio massimo della prova è pari a 32. Chi ottiene un punteggio complessivo pari a 32 avrà il voto pari a 30 e lode.

E' possibile sostenere l''esame in due parti durante lo svolgimento delle lezioni.

E' possibile sostenere una prova orale integrativa.

La modalità d'esame potrà subire modifiche in conseguenza della situazione epidemiologica, La prova scritta sopra descritta potrebbe essere sostituita da una prova ridotta contenente la progettazione di una base di dati relazionale attraverso modello ER e la formulazione di due interrogazioni rispettivamente in SQL e Algebra Relazionale. A ciascun esercizio sarà assegnato un punteggio analogamente ala modalità d'esame in presenza. Successivamente ciascuno studente affronterà una prova orale volta alla discussione della soluzione proposta ai tre esercizi e alla verifica degli altri argomenti del programma.

Testi

Il testo di riferimento per il corso è disponibile in biblioteca. Questo testo contiene tutti gli argomenti trattati nel corso, con particolare riferimento alle evoluzioni più recenti del settore.

Ramez Elmasri, Shamkant B. Navathe
Sistemi di Basi di Dati - Fondamenti e Complementi ,7/E
Pearson, 2018

TESTO DI CONSULTAZIONE PER LA PARTE "NoSQL"
Pramod J. Sadalage, Martin Fowler
NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence
Addison-Wesley Professional 2012

Altre Informazioni

Copia delle presentazioni usate a lezione e del materiale usato per le esercitazioni sarà disponibile al seguente indirizzo
https://elearning.unica.it/

Questionario e social

Condividi su: