BASI DI DATI Canale unico
Docente coordinatore e verbalizzante: N/D
Modulo 1: II MODULO
- Tipologia
- Discipline Informatiche
- SSD
- INF/01
- Anno
- 2º anno
- Semestre
- 2º semestre
- CFU
- 6
- Distribuzione delle ore
- 36 classroom hours
- Docenti
- TONI MANCINI
Modulo 2: I MODULO
- Tipologia
- Discipline Informatiche
- SSD
- INF/01
- Anno
- 2º anno
- Semestre
- 1º semestre
- CFU
- 6
- Distribuzione delle ore
- 36 classroom hours
- Docenti
- MARIA DE MARSICO
Obiettivi formativi
Al termine del corso gli studenti posseggono le conoscenze di base relative:
- alla teoria dei gruppi;
- alla struttura algebrica di alcuni semplici tipi di gruppi;
- alla risoluzione di sistemi di equazioni lineari;
- al problema della diagonalizzazione di operatori lineari su spazi vettoriali di dimensione finita.
Al termine del corso gli studenti sono in grado di:
- eseguire calcoli all’interno di gruppi;
- risolvere sistemi di equazioni lineari;
- deteminare autovalori ed autovettori di un operatore lineare ed, eventualmente, di diagonalizzarlo.
Risultati di apprendimento attesi
Modulo: II MODULO
Obiettivi generali:
Esporre gli studenti a solide metodologie di progettazione e realizzazione di applicazioni per basi di dati
Obiettivi specifici:
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 loro realizzazione.
Conoscenza e comprensione:
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 e di linguaggi standard di definizione, interrogazione e manipolazione dei dati).
Applicare conoscenza e comprensione:
Gli studenti saranno in grado di applicare in modo efficace le conoscenze indicate al punto precedente in progetti reali di applicazioni per basi di dati non banali.
Capacità critiche e di giudizio:
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:
Gli studenti saranno in grado di interagire in modo proficuo con i committenti (per quanto concerne la raccolta dei requisiti) e con altri analisti e progettisti (per quanto concerne le attività di analisi e progettazione di sistemi software non banali).
Capacità di apprendimento:
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.
Modulo: I MODULO
Capacità di analizzare la qualità di una base di dati e di effettuare una eventuale decomposizione dello schema per ottenere la terza forma normale
Capacità di valutare con buona approssimazione l'occupazione di memoria di un indice primario o secondario
Conoscenza delle tecniche di base di controllo della concorrenza
Prerequisiti
Modulo: II MODULO
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).
Modulo: I MODULO
Una buona competenza in argomenti di logica.
Una buona competenza nella formulazione/comprensione di algoritmi e nella compilazione di pseudo-codice
Programma dell’insegnamento
Modulo: II MODULO
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 ER
2.2. Analisi dei requisiti sulle funzionalità mediante diagrammi UML degli use-case
2.3. Formalizzazione della semantica dei diagrammi ER mediante logica del primo ordine e specifiche formali dei vincoli sui dati non esprimibili in ER mediante formule in logica del primo ordine
2.4. Specifiche formali delle funzionalità (operazioni di use-case) mediante pre- e post-condizioni espresse in 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 ER concettuale 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.
Modulo: I MODULO
Introduzione ai sistemi di gestione di basi di dati (2 ore)
Cenni storici.
Aspetti caratterizzanti dei sistemi di gestione di basi di dati.
Evoluzione di modelli e sistemi.
Il modello relazionale (30 ore)
Concetti di base: dominio, attributo, relazione, n-upla, schema.
I linguaggi di interrogazione (algebra relazionale, linguaggi relazionalmente completi).
Teoria della normalizzazione
Dipendenze funzionali.
Chiave di una relazione
Terza forma normale.
Assiomi di Armstrong e chiusura di un insieme di dipendenze.
Chiusura di un insieme di attributi.
Copertura minimale di un insieme di dipendenze.
Scomposizioni che hanno un join senza perdita.
Scomposizioni che preservano le dipendenze.
L’organizzazione fisica dei dati (14 ore)
La memoria secondaria.
Record fisici e record logici.
Puntatori.
Blocchi.
File heap.
File hash.
File con indice (indici densi e indici sparsi).
B-tree
La gestione della concorrenza (14 ore)
Transazioni.
Schedule seriale.
Serializzabilità.
Modelli di transazioni e meccanismi di locking.
Livelock e deadlock.
Protocolli a due fasi.
Protocolli conservativi e aggressivi.
Dati “sporchi”.
Rollback a cascata.
Timestamp.
Testi di riferimento
Modulo: II MODULO
Materiale didattico reso disponibile dal docente ed accessibile agli studenti registrati sul sito: http://tmancini.di.uniroma1.it
Modulo: I MODULO
1. R. A. Elmasri, S. B. Navathe, “Sistemi di basi di dati – Fondamenti”, Pearson – Addison Wesley, IV edizione, 2004.
2. J. D. Ullman, “Principles of database and knowledge-base systems”, vol. I, Computer Science Press, 1988.
Materiale e dispense del corso
Esempi di esercizi di esame
Bibliografia
Modulo: II MODULO
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.
Modulo: I MODULO
N/D
Modalità di svolgimento
Modulo: II MODULO
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.
Modulo: I MODULO
Gli studenti hanno a disposizione dispense, le registrazioni video delle lezioni con le relative slide, e tutti i webinar degli anni precedenti come ulteriore materiale didattico. Ogni anno viene registrato un nuovo gruppo di webinar su domande poste dagli studenti o su soluzioni di esercizi di esame
Frequenza
Modulo: II MODULO
Data la natura fortemente progettuale del modulo, la frequenza delle lezioni e delle esercitazioni, sebbene non obbligatoria, è fortemente consigliata.
Modulo: I MODULO
Frequenza asincrona a distanza
Modalità di esame
Modulo: II MODULO
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.
Maggiori dettagli sulle modalità di valutazione sono disponibili qui: http://tmancini.di.uniroma1.it/index.php?page=teaching.bd2.esame.modalita
Modulo: I MODULO
La prova scritta verte su esercizi di algebra relazionale, di teoria relazionale e di organizzazione fisica.
La prova orale verte sulle definizioni di base e sulla dimostrazione dei teoremi illustrati durante il corso.
L'esame può essere verbalizzato solo dopo il superamento di entrambi i moduli del corso.
Esempi di domande
Modulo: II MODULO
Si veda il sito web del corso per progetti del tutto analoghi a quelli da svolgere in sede d'esame.
Modulo: I MODULO
Esercizi di algebra relazionale
Applicazione degli algoritmi per controllo conservazione dipendenze e dati e decomposizione
Esercizi di calcolo di occupazione di strutture dati
Enunciato e dimostrazione dei teoremi discussi a lezione
Domande sulle strutture dati per l'organizzazione fisica delle basi di dati
Domande su tecniche di controllo della concorrenza
Programmazione delle attività didattiche
Modulo: II MODULO
- 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.
Modulo: I MODULO
N/D
- Anno accademico2024/2025
- Corso di studio a cui afferisce l’insegnamentoInformatica - erogato in modalità prevalentemente a distanza
- Linguaita
- CFU12 CFU distribuiti in 2 moduli didattici integrati
- Durata complessiva72 ore