II MODULO

Obiettivi formativi

Obiettivi generali: Essere in grado di progettare/valutare le proprietà, la struttura di memorizzazione e i protocolli di un sistema di gestione di basi di dati. Esporre gli studenti a solide metodologie di progettazione e realizzazione di applicazioni per basi di dati Obiettivi specifici: Conoscenza delle proprietà di uno schema relazionale e di una decomposizione. Capacità di interrogare una base di dati. Capacità di valutare i costi delle operazioni di accesso ai dati. Conoscenza di protocolli di per il controllo della concorrenza. Esporre gli studenti a metodologie formali e scalabili per l'analisi concettuale e la progettazione di applicazioni per basi di dati e a tecnologie standard per la realizzazione di basi di dati relazionali. Conoscenza e comprensione: Fondamenti teorici della progettazione e della interrogazione di una base di dati relazionale. Principali strutture di organizzazione dei dati su memoria secondaria. Principali tecniche usate nei DBMS per il controllo dell’esecuzione concorrente delle transazioni. Gli studenti acquisiranno conoscenze metodologiche fondamentali per la progettazione di applicazioni per basi di dati non banali (in particolare per le fasi di: a) raccolta dei requisiti; b) analisi concettuale dei dati e delle funzionalità; c) progettazione della base dati e delle funzionalità) e per la loro realizzazione (utilizzo di DBMS relazionali e del linguaggio SQL). Applicare conoscenza e comprensione: Progettare schemi relazionali con “buone proprietà”. Interrogare una base di dati mediante algebra relazionale. Valutare i costi delle operazioni fondamentali su file con diversi tipi di organizzazione fisica. Gli studenti saranno in grado di applicare in modo efficace le conoscenze acquisite in progetti reali di applicazioni per basi non banali. Capacità critiche e di giudizio: Essere in grado di valutare le proprietà di uno schema relazionale e di una sua decomposizione. Essere in grado di scegliere la struttura dati più appropriata per memorizzare le informazioni di uno schema. Gli studenti saranno in grado di prendere autonomamente decisioni razionali in tutte le fasi del processo di progettazione di applicazioni per basi di dati. Capacità comunicative: Essere in grado di comunicare/condividere caratteristiche qualitative/quantitative relative alla struttura relazionale di una base di dati Gli studenti saranno in grado di interagire in modo proficuo con i committenti (per quanto concerne la raccolta dei requisiti) e con altri analisi e progettisti (per quanto concerne le attività di analisi e progettazione di sistemi software non banali). Capacità di apprendimento: Essere in grado di utilizzare i concetti acquisiti nel modulo successivo del corso e in un eventuale corso avanzato di basi di Dati. Gli studenti saranno in grado di ampliare le loro conoscenze in modo autonomo consultando, secondo necessità, manualistica tecnica nell'ambito della progettazione di applicazioni per basi di dati.

Canale 1
TONI MANCINI Scheda docente

Programmi - Frequenza - Esami

Programma
Le lezioni e le esercitazioni affronteranno il seguente programma, approssimativamente nel suo ordine naturale. Per ogni punto di primo livello, viene indicata tra parentesi la durata stimata (in percentuale sul totale delle lezioni erogate) della presentazione dei diversi argomenti. 1. Introduzione e cenni di ingegneria del software: attori e ciclo di vita del software (10% circa delle lezioni) 2. Analisi concettuale dei requisiti (50% circa delle lezioni) 2.1. Analisi dei requisiti sui dati mediante diagrammi UML concettuali delle classi 2.2. Analisi dei requisiti sulle funzionalità mediante diagrammi UML degli use-case 2.3. Formalizzazione della semantica dei diagrammi UML delle classi mediante logica del primo ordine e specifiche formali dei vincoli sui dati non esprimibili in UML mediante formule in opportune estensioni della logica del primo ordine 2.4. Specifiche formali delle funzionalità (operazioni di use-case) mediante pre- e post-condizioni espresse in opportune estensioni della logica del primo ordine 3. Progettazione di basi di dati relazionali e di applicazioni per basi di dati a partire dall'output della fase di Analisi concettuale dei requisiti (40% circa delle lezioni): 3.1. Progettazione di una base dati relazionale con vincoli a partire da un diagramma UML concettuale delle classi con vincoli esterni e informazioni sul carico di lavoro e sui volumi dei dati 3.2. Progettazione delle funzionalità di un'applicazione di basi di dati mediante algoritmi in pseudo-codice e comandi in linguaggio SQL, a partire dalle specifiche formali delle funzionalità 3.3. Il linguaggio SQL: domini, istruzioni select-from-where-group by-having-order by, operatori aggregati, interrogazioni nidificate, operatori insiemistici, istruzioni insert, delete, update, create/drop domain, create/drop table, vincoli di chiave e di integrità referenziale, clausole check, trigger, viste, controllo dell'accesso, transazioni, indici.
Prerequisiti
Si richiede buona conoscenza di: 1) Programmazione imperativa ed object-oriented in un qualunque linguaggio di programmazione di alto livello 2) Tecniche per il progetto di algoritmi e strutture dati 3) Matematica generale, algebra, teoria degli insiemi 4) Logica proposizionale 5) Fondamenti teorici della progettazione e della interrogazione di una base dati relazionale e tecnologie impiegate in DBMS (in particolare: strutture fisiche di rappresentazione, e tecniche per il controllo dell'esecuzione concorrente delle transazioni).
Testi di riferimento
Materiale didattico reso disponibile dal docente ed accessibile agli studenti registrati nel sito del corso, raggiungibile da qui: https://raise.uniroma1.it/teaching
Modalità insegnamento
Il modulo consiste in lezioni ed esercitazioni in aula, nelle quali verranno affrontate le diverse fasi della progettazione di applicazioni per basi di dati di dimensioni medio-grandi.
Frequenza
Data la natura fortemente progettuale del modulo, la frequenza delle lezioni e delle esercitazioni, sebbene non obbligatoria, è fortemente consigliata.
Modalità di esame
L'esame del modulo consiste in una prova scritta ed una prova orale. La prova scritta avrà l'obiettivo di valutare la capacità dello studente di effettuare l'analisi concettuale e la progettazione di un'applicazione per basi di dati a partire da una specifica dei requisiti e applicando le metodologie apprese nel corso. La prova orale sarà centrata nella discussione della prova scritta, ed ha l'obiettivo primario di verificare che non ci siano stati errori o incomprensioni da parte del docente durante la valutazione della prova scritta. La prova orale non potrà dunque sanare lacune nella prova scritta. A discrezione del docente, la prova orale potrà trasformarsi in un colloquio approfondito per verificare il dominio dei contenuti del programma d'esame.
Bibliografia
Libri di testo consigliati: Paolo Atzeni, Stefano Ceri, Piero Fraternali, Stefano Paraboschi, Riccardo Torlone: Basi di dati, Modelli e linguaggi di interrogazione. McGraw-Hill Education. ISBN 9788838668005. Ramez Elmasri, Shamkant B. Navathe Database Systems: Models, Languages, Design, and Application Programming. Pearson. ISBN 9780132144988.
Modalità di erogazione
Il modulo consiste in lezioni ed esercitazioni nelle quali verranno affrontate le diverse fasi della progettazione di applicazioni per basi di dati di dimensioni medio-grandi.
TONI MANCINI Scheda docente

Programmi - Frequenza - Esami

Programma
Le lezioni e le esercitazioni affronteranno il seguente programma, approssimativamente nel suo ordine naturale. Per ogni punto di primo livello, viene indicata tra parentesi la durata stimata (in percentuale sul totale delle lezioni erogate) della presentazione dei diversi argomenti. 1. Introduzione e cenni di ingegneria del software: attori e ciclo di vita del software (10% circa delle lezioni) 2. Analisi concettuale dei requisiti (50% circa delle lezioni) 2.1. Analisi dei requisiti sui dati mediante diagrammi UML concettuali delle classi 2.2. Analisi dei requisiti sulle funzionalità mediante diagrammi UML degli use-case 2.3. Formalizzazione della semantica dei diagrammi UML delle classi mediante logica del primo ordine e specifiche formali dei vincoli sui dati non esprimibili in UML mediante formule in opportune estensioni della logica del primo ordine 2.4. Specifiche formali delle funzionalità (operazioni di use-case) mediante pre- e post-condizioni espresse in opportune estensioni della logica del primo ordine 3. Progettazione di basi di dati relazionali e di applicazioni per basi di dati a partire dall'output della fase di Analisi concettuale dei requisiti (40% circa delle lezioni): 3.1. Progettazione di una base dati relazionale con vincoli a partire da un diagramma UML concettuale delle classi con vincoli esterni e informazioni sul carico di lavoro e sui volumi dei dati 3.2. Progettazione delle funzionalità di un'applicazione di basi di dati mediante algoritmi in pseudo-codice e comandi in linguaggio SQL, a partire dalle specifiche formali delle funzionalità 3.3. Il linguaggio SQL: domini, istruzioni select-from-where-group by-having-order by, operatori aggregati, interrogazioni nidificate, operatori insiemistici, istruzioni insert, delete, update, create/drop domain, create/drop table, vincoli di chiave e di integrità referenziale, clausole check, trigger, viste, controllo dell'accesso, transazioni, indici.
Prerequisiti
Si richiede buona conoscenza di: 1) Programmazione imperativa ed object-oriented in un qualunque linguaggio di programmazione di alto livello 2) Tecniche per il progetto di algoritmi e strutture dati 3) Matematica generale, algebra, teoria degli insiemi 4) Logica proposizionale 5) Fondamenti teorici della progettazione e della interrogazione di una base dati relazionale e tecnologie impiegate in DBMS (in particolare: strutture fisiche di rappresentazione, e tecniche per il controllo dell'esecuzione concorrente delle transazioni).
Testi di riferimento
Materiale didattico reso disponibile dal docente ed accessibile agli studenti registrati nel sito del corso, raggiungibile da qui: https://raise.uniroma1.it/teaching
Modalità insegnamento
Il modulo consiste in lezioni ed esercitazioni in aula, nelle quali verranno affrontate le diverse fasi della progettazione di applicazioni per basi di dati di dimensioni medio-grandi.
Frequenza
Data la natura fortemente progettuale del modulo, la frequenza delle lezioni e delle esercitazioni, sebbene non obbligatoria, è fortemente consigliata.
Modalità di esame
L'esame del modulo consiste in una prova scritta ed una prova orale. La prova scritta avrà l'obiettivo di valutare la capacità dello studente di effettuare l'analisi concettuale e la progettazione di un'applicazione per basi di dati a partire da una specifica dei requisiti e applicando le metodologie apprese nel corso. La prova orale sarà centrata nella discussione della prova scritta, ed ha l'obiettivo primario di verificare che non ci siano stati errori o incomprensioni da parte del docente durante la valutazione della prova scritta. La prova orale non potrà dunque sanare lacune nella prova scritta. A discrezione del docente, la prova orale potrà trasformarsi in un colloquio approfondito per verificare il dominio dei contenuti del programma d'esame.
Bibliografia
Libri di testo consigliati: Paolo Atzeni, Stefano Ceri, Piero Fraternali, Stefano Paraboschi, Riccardo Torlone: Basi di dati, Modelli e linguaggi di interrogazione. McGraw-Hill Education. ISBN 9788838668005. Ramez Elmasri, Shamkant B. Navathe Database Systems: Models, Languages, Design, and Application Programming. Pearson. ISBN 9780132144988.
Modalità di erogazione
Il modulo consiste in lezioni ed esercitazioni nelle quali verranno affrontate le diverse fasi della progettazione di applicazioni per basi di dati di dimensioni medio-grandi.
  • Anno accademico2025/2026
  • CorsoInformatica
  • CurriculumTecnologico
  • Anno2º anno
  • Semestre2º semestre
  • SSDINF/01
  • CFU6