BASI DI DATI

Obiettivi formativi

OBIETTIVI GENERALI Il corso si propone di insegnare 1. aspetti teorici, consistenti in modelli e linguaggi di basi di dati, 2. metodologie di progetto, che consentiranno allo studente, una volta che siano acquisite, di affrontare e risolvere casi concreti, 3. tecnologie, consistenti in diversi strumenti software usati in modo combinato per la implementazione delle basi di dati, scegliendo strumenti diffusi nelle pratiche aziendali. Alla fine del corso lo studente sarà in grado di interagire con il destinatario di un’applicazione di basi di dati in modo da sintetizzare correttamente i requisiti e di sviluppare prima il progetto, poi l’applicazione stessa, scegliendo gli strumenti più idonei. OBIETTIVI SPECIFICI CONOSCENZA E COMPRENSIONE. Il corso si propone di fornire allo studente la conoscenza e la comprensione degli strumenti teorici, metodologici, tecnologici che coprono i diversi aspetti utili ad interagire con gli ambienti di basi di dati, con obiettivi professionali o scientifici. CAPACITÀ DI APPLICARE LE CONOSCENZE. Grazie al corso lo studente sarà in grado di procedere alla definizione, al progetto e alla implementazione di una base di dati integrabile con componenti applicative, utilizzando formalismi (in sede di progetto) e linguaggi (in sede di sviluppo) che costituiscono consolidati standard industriali. AUTONOMIA DI GIUDIZIO. Sia la prova scritta che il project work mettono lo studente di fronte a situazioni impreviste che sollecitano lo sviluppo di capacità di prendere decisioni in modo autonomo, sia nei contenuti (l’ogetto della progettazione), sia negli strumenti. ABILITÀ DI COMUNICAZIONE. Il ricorso a standard di rappresentazione di ampia diffusione deteminano l’acquisizione di un “linguaggio” per interagire in qualunque contesto professionale. Il project work richiede da un lato di interagire e di tener conto delle esigenze di “committenti” (veri o presunti) dell’applicazione di basi di dati, e dall’altro di difendere le scelte effettuate in occasione della discussione richiesta come seconda prova di esame. CAPACITÀ DI APPRENDERE. Il corso fornisce da un lato conoscenze teoriche di carattere molto generale, dall’altro (in sede di project work) richiede di sviluppare esperienze pratiche con più strumenti integrati tra loro, dovendo in molti casi cercare autonomamente la documentazione di corredo. Questo tipo di esperienza, insieme con una solida cultura di base nel settore, crea i migliori presupposti per lo sviluppo autonomo di ulteriori conoscenze.

Canale 1
UMBERTO NANNI Scheda docente

Programmi - Frequenza - Esami

Programma
LEZIONI 1. Introduzione al corso, programma, esami, libri di testo [2 ore] 2. Concetti di Base: Basi di Dati, Sistemi informativi, Modelli dei dati, Metadati, Indipendenza fisica, DBMS [4 ore] 3. Basi di dati relazionali: concetti di base, schemi e istanze; linguaggi, algebra relazionale, SQL; vincoli di unicità, chiave primaria; interrogazioni semplici; manipolazione dei dati [12 ore] 4. Strutturazione delle Basi di dati: chiavi esterne e vincoli di integrità referenziale; composizione di interrogazioni con più tabelle; indipendenza logica e viste [8 ore] 5. Progetto di Basi di Dati: ciclo di vita, fasi del progetto; Modello Entità-Relazione e progetto Concettuale; Progetto logico ER-relazionale; Gerarchie di generalizzazione e modello EER; Ridondanza dei dati ed anomalie; Dipendenze funzionali; Indicizzazione [16 ore] 6. Interrogazioni complesse: operatori aggregativi; interrogazioni nidificate; funzioni di manipolazione [4 ore] 7. Sistemi di Gestione di Basi di Dati: generalità; utenti e linguaggi di accesso; funzionalità, moduli e servizi di un DBMS; consistenza; backup; sicurezza; concorrenza e transazioni; la base di dati in architetture applicative; evoluzione dei DBMS [4 ore] 8. Introduzione alla normalizzazione [4 ore] 9. Progetto di avanzato di BD: discretizzazione di domini; rappresentazione di alberi e grafi/reti nelle BD [2 ore] 10. Progetto di applicazioni: Requisiti software e dati; Diagramma degli stati e progetto di GUI; Applicazioni Client-Server con GUI su DBMS. [4 ore] ESERCITAZIONI 11. Utilizzo pratico di un sistema di gestione di Basi di Dati (postgres): istallazione, elementi base di amministrazione, interfacce grafiche, inserimento ed esecuzione di codice [4 ore] 12. Esercitazioni SQL: creazione di basi di dati, tipi di dato, definizione di tabelle, vincoli di integrità, inserimento e modifica dati, interrogazioni, utilizzo funzioni, costruzione interrogazioni complesse [18 ore] 13. Configurazione client-server (es.: ODBC) e sviluppo di applicazioni con ambienti distinti per client e server; analisi casi di studio [8 ore]
Prerequisiti
Conoscenze basilari dei seguenti argomenti: 1. tecniche di programmazione 2. strutture dati 3. architettura dei sistemi di elaborazione 4. sistemi operativi
Testi di riferimento
Testi: L. Allulli, U. Nanni, Basi di Dati - Progetto, sviluppo ed utilizzo pratico, Hoepli, Settembre 2017. U. Nanni, Un esercizio sulla Normalizzazione (Dispensa didattica per il corso di Basi di Dati), Dicembre 2019. U. Nanni, Slides usate nelle lezioni. Materiale aggiuntivo: U. Nanni, Esercizi su Progetto di Basi di Dati ed SQL (Dispensa didattica per il corso di Basi di Dati), Settembre 2017. U. Nanni, esempi di codice e soluzione commentata di esercizi.
Modalità insegnamento
Il modello didattico prevalente è la lezione frontale (in presenza e/o a distanza) avente come obiettivo il trasferimento dei principali concetti relativi a: 1. formalismi utilizzati nelle basi di dati, 2. metodologie di rappresentazione e di progetto, 3. tecnologie di sviluppo correlate alle basi di dati. Gli aspetti metodologici (progetto) sono accompagnati da esempi sviluppati da zero che portano alla discussione di alternative con gli allievi. Le esercitazioni sono illustrate e poi eseguite su elaboratore, richiedendo agli studenti di sviluppare la loro soluzione contestualmente, con la possibilità di interagire in qualunque momento con il docente.
Frequenza
La frequenza è facoltativa anche se fortemente consigliata.
Modalità di esame
1. Prova scritta. 2. Discussione (orale) di un progetto. La modalità di esame prevede una valutazione dello studente in due parti: 1. Prova scritta - peso: 2/3 2. Project work - peso: 1/3 1. La prova scritta contiene domande sul programma didattico erogato in aula e richiede la risoluzione di alcuni esercizi. La durata della prova scritta è di 90 minuti. La prova scritta permette di valutare conoscenza e comprensione individuali, capacità di applicare le conoscenze acquisite. 2. Il project work prevede un lavoro individuale o in gruppo, composto al massimo da 3 studenti, che richiede di produrre la stesura di un documento di ANALISI/PROGETTO ed una parte IMPLEMENTATIVA (software funzionante su un PC). La struttura del documento è nota (discussa a lezione e schematizzata nel sito del corso). La consegna della relazione e la presentazione sul computer richiedono a ciascuno studente di esporre una parte del progetto. Tale presentazione consente di valutare abilità di comunicazione, capacità di applicare le conoscenze acquisite, autonomia di giudizio, capacità di team-working degli studenti e la loro capacità di apprendere le competenze pratiche richieste per lo sviluppo di un progetto concreto. Il voto massimo (30 e lode) viene assegnato con un punteggio pari a 30 e lode nella prova scritta e un punteggio massimo nel project work.
Bibliografia
Altri testi di consultazione: P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, Basi di Dati, 4a ed., McGraw-Hill Education (Italy), 2014. R. Elmasri, S.B. Navathe: Sistemi di basi di dati - Fondamenti. Addison Wesley, 2011.
Modalità di erogazione
Il modello didattico prevalente è la lezione frontale (in presenza e/o a distanza) avente come obiettivo il trasferimento dei principali concetti relativi a: 1. formalismi utilizzati nelle basi di dati, 2. metodologie di rappresentazione e di progetto, 3. tecnologie di sviluppo correlate alle basi di dati. Gli aspetti metodologici (progetto) sono accompagnati da esempi sviluppati da zero che portano alla discussione di alternative con gli allievi. Le esercitazioni sono illustrate e poi eseguite su elaboratore, richiedendo agli studenti di sviluppare la loro soluzione contestualmente, con la possibilità di interagire in qualunque momento con il docente.
  • Codice insegnamento1052231
  • Anno accademico2024/2025
  • CorsoIngegneria dell'Informazione (sede di Latina)
  • CurriculumInformatica (percorso valido per il conseguimento del doppio titolo italo-venezuelano)
  • Anno3º anno
  • Semestre1º semestre
  • SSDING-INF/05
  • CFU9
  • Ambito disciplinareIngegneria informatica