Università degli studi dell'Insubria

BASI DI DATI

A.A. di erogazione 2019/2020
Insegnamento obbligatorio

Laurea triennale in INFORMATICA
 (A.A. 2018/2019)
Anno di corso: 
2
Tipologia di insegnamento: 
Caratterizzante
Settore disciplinare: 
INFORMATICA (INF/01)
Crediti: 
9
Ciclo: 
Primo Semestre
Ore di attivita' frontale: 
80
Dettaglio ore: 
Lezione (64 ore), Laboratorio (16 ore)

Il corso ha come obiettivo l'acquisizione degli strumenti, dei modelli e dei linguaggi per l'utilizzo, la progettazione e lo sviluppo di basi di dati relazionali e di applicazioni per tali basi di dati. Più specificatamente, gli obiettivi formativi sono i seguenti:
1. Comprendere le caratteristiche ed i principali servizi offerti da un sistema di gestione di basi di dati.
2. Conoscere e comprendere il modello relazionale per la gestione dati.
3. Conoscere e saper utilizzare lo standard SQL, sia per la creazione dello schema di una base di dati e la specifica di vincoli di correttezza, sia per la manipolazione e l’interrogazione delle sue istanze.
4. Conoscere le principali soluzioni per lo sviluppo di una applicazione che si interfaccia ad una base di dati; conoscere il concetto di transazione e i servizi messi a disposizione da un DBMS per la loro esecuzione concorrente.
5. Conoscere e utilizzare JDBC per la realizzazione di programmi object-oriented che si interfacciano ad una base di dati.
6. Conoscere le principali metodologie per la progettazione di una base di dati relazionale.
7. Conoscere e saper utilizzare il modello Entità-Relazione per la progettazione concettuale di una base di dati.
8. Saper affrontare tutte le fasi della progettazione di una base di dati relazionale, con particolare riferimento alla progettazione concettuale e logica.
La conoscenza dei modelli per la gestione dati e dei relativi linguaggi permette l’acquisizione di adeguate capacità per l'approfondimento individuale delle proprie conoscenze e per lo sviluppo di nuove competenze. Ad esempio, non dovrebbe essere difficile per uno studente che ha seguito proficuamente il corso, apprendere autonomamente i concetti base di un nuovo modello non relazionale dei dati o la programmazione di applicazioni che si interfacciano ad una base di dati con un linguaggio diverso dal linguaggio Java visto a lezione.

Prerequisiti: 

È richiesta la capacità di programmare in Java. Le conoscenze e abilità necessarie per un proficuo apprendimento di questo insegnamento sono impartite nel corso fondamentale del primo anno di Programmazione, che dunque costituisce propedeuticità obbligatoria.

Le lezioni affronteranno i seguenti argomenti:
Introduzione alle basi di dati e ai sistemi di gestione di basi di dati (4h, obiettivo formativo 1)
- concetti introduttivi
- dai sistemi operativi ai DBMS
- obiettivi e servizi di un DBMS
- modelli dei dati ed evoluzioni
- livelli nella rappresentazione dei dati
- linguaggi ed utenti di un DBMS
Il modello relazionale (6 h, obiettivo formativo 2)
- relazioni
- valori nulli
- chiavi e chiavi esterne
Il linguaggio SQL – comandi del DDL (4 h, obiettivo formativo 3)
- tipi di dato,
- creazione di relazioni
- cancellazione e modifica di relazioni
Interrogazioni SQL (12 h, obiettivo formativo 3)
- formato di base del comando SELECT
- operatori e funzioni
- ordinamento del risultato di un’interrogazione
- operazione di join
- funzioni di gruppo e raggruppamento
- valori nulli
- sotto-interrogazioni
- operazioni insiemistiche
Operazioni di aggiornamento in SQL (4 h, obiettivo formativo 3)
- inserimento di tuple
- cancellazione di tuple
- modifica di tuple
Ulteriori comandi SQL (4 h, obiettivo formativo 3)
- vincoli CHECK ed asserzioni
- controllo di vincoli di integrità
- viste
SQL e linguaggi di programmazione . (5 h, obiettivo formativo 4/5)
- estensioni procedurali di SQL
- librerie di funzioni (JDBC)
- SQL ospitato
Il concetto di transazione – cenni (2 h, obiettivo formativo 4)
Progettazione di basi di dati (2 h, obiettivo formativo 6)
- fasi della progettazione
Modello Entità-Relazione (4 h, obiettivo formativo 7)
- costrutti di base
- vincoli di integrità
- gerarchie di generalizzazione
Metodologie di progettazione (6 h, obiettivo formativo 6)
- raccolta ed analisi dei requisiti
- ristrutturazione delle specifiche
- generazione schemi ER
- verifica di qualità di schemi ER
Progettazione logica - fase di ristrutturazione (5 h, obiettivo formativo 8)
- eliminazione degli attributi composti e multi valore
- eliminazione delle gerarchie di generalizzazione
Progettazione logica - fase di traduzione (6 h, obiettivo formativo 8)
- traduzione entità
- traduzione associazioni
- schema finale ed ottimizzazioni

Il corso si articola in lezioni frontali (64 ore) ed esercitazioni (16 ore).
Le lezioni sono dedicate ad illustrare i concetti base dei sistemi di gestione dati, del modello relazionale, dei linguaggi per la sua implementazione e manipolazione (sia in modalità stand-alone che tramite un programma applicativo) e delle tecniche e degli strumenti adatti alla progettazione di una base di dati.
Alcuni degli argomenti trattati a lezione sono oggetto di esercitazioni che prevedono la partecipazione attiva degli studenti e comprendono l’utilizzo di SQL su un DBMS commerciale, la programmazione di applicazioni Java che si interfacciano ad una base di dati mediante JDBC e l’esemplificazione delle tecniche di progettazione mediante la presentazione e la discussione di casi di studio.

Modalita' di verifica dell'apprendimento: 

L’obiettivo della prova d’esame è l'accertamento dell’acquisizione delle conoscenze e delle abilità descritte nella sezione “Obiettivi del corso”, valutando il livello di conoscenza e soprattutto la capacità di utilizzare i linguaggi e le tecniche viste a lezione.
L'esame consiste di una prova scritta della durata di 2 ore e 30 circa senza l'aiuto di appunti o libri e da eseguire senza l’ausilio di un computer. La prova scritta consiste di 2 parti. La prima parte consta di 6 domande di teoria, a cui è attribuito uguale punteggio pari a 5, mentre la seconda parte consiste di 3 esercizi. Le domande di teoria hanno come argomento le conoscenze illustrate nella sezione “Contenuti del corso” e richiedono una risposta sintetica. Gli esercizi sono volti ad accertare le conoscenze di SQL e delle metodologie di progettazione. In particolare, il primo esercizio verte sui comandi di SQL DDL, il secondo richiede la formulazione di un insieme di query SQL, mentre l’ultimo esercizio verte sulla progettazione concettuale e logica. Il primo esercizio consente di norma di ottenere un massimo di 8 punti, il secondo 12, mentre il terzo 10. L’attribuzione del voto finale è determinata per 1/3 dal voto ottenuto nella prima parte (domande teoriche) e per 2/3 dal voto ottenuto nella seconda parte (esercizi). Il voto è espresso in trentesimi. Per superare l’esame bisogna ottenere un minimo di 18/30 in entrambe le parti.

I testi consigliati sono:
B. Catania, E. Ferrari, e G. Guerrini. Sistemi di Gestione Dati: Concetti e Architetture, Città Studi Edizioni, 2006.
B. Carminati, A. Maddalena, M. Mesiti. Sistemi di Gestione Dati (Esercizi),Città Studi Edizioni, 2008.
Le slide delle lezioni in formato PDF sono messe a disposizione sulla piattaforma e-learning di Ateneo ove sono disponibili anche il testo dei temi d’esame e le soluzioni proposte, più del materiale aggiuntivo (esercizi, letture consigliate) per facilitare la preparazione della prova di esame.

La docente riceve su appuntamento, previa richiesta via e-mail a nome.cognome@uninsubria.it. La docente risponde solo alle e-mail firmate e provenienti dal dominio studenti.uninsubria.it.

Cerchi il programma? Potrebbe non essere ancora stato caricato o riferirsi ad insegnamenti che verranno erogati in futuro.
Seleziona l‘anno in cui ti sei immatricolato e troverai le informazioni relative all'insegnamento del tuo piano di studio.

A.A. 2019/2020

Anno di corso: 2
Curriculum: PERCORSO COMUNE

A.A. 2017/2018

Anno di corso: 2
Curriculum: PERCORSO COMUNE

A.A. 2016/2017

Anno di corso: 2
Curriculum: PERCORSO COMUNE

A.A. 2015/2016

Anno di corso: 2
Curriculum: PERCORSO COMUNE

A.A. 2014/2015

Anno di corso: 2
Curriculum: PERCORSO COMUNE

A.A. 2013/2014

Anno di corso: 2
Curriculum: PERCORSO COMUNE