Basi di Dati (A.A. 2023/2024)
A chi è rivolto il corso. Il corso, tenuto nel primo semestre (periodo didattico da settembre 2023 a dicembre 2023), è di 6 crediti, ed è rivolto specificamente agli studenti del terzo anno del Corso di Laurea in Ingegneria Informatica e Automatica della Sapienza Università di Roma.
Prerequisiti. Si richiede la conoscenza dei fondamenti di: programmazione, linguaggi di programmazione, strutture di dati e sistemi operativi.
Obiettivi. L'obiettivo del corso è lo studio degli aspetti fondamentali della gestione dei dati, dei sistemi per la gestione di basi di dati e delle metodologie di progettazione di basi di dati. Alla fine del corso lo studente dovrebbe avere acquisito le nozioni di base della gestione dei dati e le tecniche e metodi per condurre il progetto di una basi di dati e per utilizzare le funzionalità fondamentali (definizione della base di dati, aggiornamento della base di dati, interrogazioni sulla base di dati) dei sistemi di gestione di basi di dati nell'ambito dello sviluppo e dell'esercizio di sistemi informatici. Il corso fa esplicito riferimento sia alle basi di dati relazionali e ai relativi sistemi di gestione fondati sul linguaggio SQL, sia ad alcuni modelli e sistemi NoSQL (Not only SQL).
- 4 dicembre 2023. A causa di una indisponibilità del docente. la lezione di Basi di Dati prevista per oggi, 4 dicembre 202, non si terrà. Le lezioni riprenderanno regolarmente mercoledì 6 dicembre.
- 3 dicembre 2023. Il Test SQL per l'appello invernale si terrà l'8 gennaio 2024 dalle ore 14 in laboratorio (aula 16). La precisa organizzazione del test, compresi i turni, verrà comunicata più avanti. Intanto, gli studenti che vogliono partecipare al test SQL sono invitati a prenotarsi tramite la sezione "TestSQL" della pagina MOODLE del corso, dove troveranno l'evento "Test SQL N2 (8/1/2024)". Le prenotazioni si chiudono il 27 dicembre 2023. Chi non si prenota entro questa data seguendo questa modalità non potrà partecipare al test SQL, e non ci sarà alcuna eccezione a questa regola.
- 18 novembre 2023. Gli appelli di Basi di Dati per la sessione invernale si terranno il 26/1/2024 ed il 23/2/2024. Chi non si prenota attraverso INFOSTUD nei tempi stabiliti non potrà sostenere l'esame e non ci sarà alcuna eccezione a questa regola.
- 18 novembre 2023. Come già indicato dal calendario delle lezioni, lunedì 20 novembre 2023 non si terrà la lezione di Basi di Dati.
- 22 settembre 2023. Le lezioni del corso inizieranno il 25 settembre 2023.
- Il tutor del corso è il dott. Luca Andolfi (andolfi@diag.uniroma.it), il quale riceve gli studenti, durante il periodo delle lezioni, ogni giovedì (a meno di eccezioni che saranno comunicate) dalle 16.00 alle 17.00 on-line al link https://meet.google.com/oio-sxsx-wfu.
- D. Calvanese, G. De Giacomo, M. Lenzerini - Materiale didattico relativo alle lezioni del corso.
Il materiale didattico viene reso disponibile mediante il sistema MOODLE, ed è scaricabile accedendo alla sezione MOODLE del corso di Basi di dati A.A. 2023/24. Gli studenti che frequentano il corso e che vogliono scaricare il materiale didattico e partecipare al forum del corso devono iscriversi accedendo alla pagina MOODLE del corso stesso. Si rende noto che gli studenti della Sapienza possono accedere al sistema MOODLE usando le credenziali ufficiali dell'ateneo.
- Consigliato ma non necessario: Ramez A. Elmasri, Shamkant B. Navathe. Sistemi di basi di dati. Fondamenti e complementi. Pearson (collana: Informatica), 2017
- Mini tutorial su PostgreSQL per esercitazioni in SQL - preparato dal dott. Gianluca Cima: per Linux, per Windows
Per le informazioni sulla trasmissione e sulle registrazioni delle lezioni si rimanda alla sezione MOODLE del corso. Le lezioni si svolgeranno con il seguente orario:
- lunedì: [ore 08:00 - 10:00] Sede Marco Polo, viale dello Scalo S. Lorenzo, 82, aula 204
- mercoledì: [ore 16:00 - 18:00] Sede Marco Polo, viale dello Scalo S. Lorenzo, 82, aula 204
- giovedì: [ore 10:00 - 12:00] Sede Marco Polo, viale dello Scalo S. Lorenzo, 82, aula 106
- venerdì: [ore 08:00 - 11:00] Laboratorio Paolo Ercoli, via Tiburtina 205, aula 16
Il materiale delle esercitazioni, comprese le soluzioni degli esercizi, è scaricabile accedendo alla sezione MOODLE del corso.
Week | Lunedì (08:00 - 10:00) aula 204 | Mercoledì (16:00 - 18:00) aula 204 | Giovedì (10:00 - 12:00) aula204 | Venerdì (08:00 - 11:00) lab 16 |
01 (Set 25) |
Lezioni 1,2 - Introduzione alle basi di dati - Il modello relazionale: strutture |
Lezioni 3,4 - L'algebra relazionale - Esercitazione 1: primi esercizi in algebra relazionale |
Lezioni 5,6 - L'algebra relazionale: il join - Valori nulli |
Lezioni 7,8 (2 turni in laboratorio da 1,5 ore ciascuno, 1° turno A-L) - Esercitazione 2: esercizi in algebra relazionale |
02 (Ott 02) |
Lezioni 9,10 - Valori nulli - Vincoli di integrità |
|
Lezioni 11,12 - SQL: le basi dell'istruzione select |
Lezioni 13,14 (2 turni in laboratorio da 1,5 ore ciascuno, 1° turno M-Z) - Esercitazione 3: semplici esercizi in SQL |
03 (Oct 09) |
Lezioni 15,16 - Le varianti del join in SQL - La clausola group by - Operatori insiemistici in SQL |
Lezioni 17,18 - Definizione di uno schema in SQL - Manipolazione di dati in SQL |
Lezioni 19,20 - Query annidate in SQL |
Lezioni 21,22 (2 turni in laboratorio da 1,5 ore ciascuno, 1° turno A-L) - Esercitazione 4: esercizi in SQL |
04 (Oct 16) |
Lezioni 23,24 - Query annidate nelle clausole from, select e having - Istruzione CASE e la nozione di vista |
Lezioni 25,26 - Le transazioni - Le politiche di reazione a violazioni di vincoli |
Lezioni 27,28 - Accesso da basi di dati da software - Accesso da software interno |
Prova test SQL (1 turno in laboratorio) - Esercitazione 5: query in SQL in preparazione al test |
05 (Ott 23) |
Lezioni 29,30 - Accesso da basi di dati da software - Accesso da software esterno |
Lezioni 31,32 - Progettazione di basi di dati: introduzione - Modello ER - Entità e attributi |
Lezioni 33,34 - Relazioni e ruoli nel modello ER |
Prova test SQL (1 turno in laboratorio) - Esercitazione 6: query in SQL in preparazione al test |
06 (Ott 30) |
Lezioni 35,36 - La relazione ISA tra entità |
|
Lezioni 37,38 - La relazione ISA tra relazioni - Vincoli di cardinalità |
Test SQL in laboratorio |
07 (Nov 06) |
|
Lezioni 39,40 - Esercitazione 7: esercizi di progettazione concettuale |
Lezioni 41,42 - Vincoli di identificazione su entità |
|
08 (Nov 13) |
Lezioni 43,44 - Vincoli di identificazione su relazioni |
Lezioni 45,46 - Metodologia di progettazione concettuale |
Lezioni 47,48 - Pattern di progettazione concettuale - Verifiche di qualità dello schema concettuale |
Esercitazione di progettazione concettuale (1 turno in laboratorio) - Esercitazione 8 |
09 (Nov 20) |
|
Lezioni 49,50 - La progettazione logica - Ristrutturazione dello schema concettuale |
Lezioni 51,52 - Ristrutturazione dello schema concettuale - Esercizi di ristrutturazione dello schema concettuale |
Esercitazione di progettazione concettuale e logica (1 turno in laboratorio) - Esercitazione 9 |
10 (Nov 27) |
Lezioni 53,54 - La traduzione diretta di entità |
|
Lezioni 55,56 - La traduzione diretta di ER-relazioni - Esercitazione 10 |
Esercitazione di autovalutazione sulla traduzione diretta - Esercitazione 11 |
11 (Dec 04) |
Lezioni 57,58 - Ristrutturazione dello schema logico |
|||
12 (Dec 11) |
||||
13 (Dec 18) |
- 1. Introduzione alle basi di dati. Basi di dati e sistemi informativi. Sistemi di gestione di basi di dati.
- 2. Il modello relazionale. Basi di dati relazionali. Il modello relazionale. Algebra relazionale.
- 3. Il linguaggio SQL. Definizione dei dati. Interrogazioni. Vincoli di integrità. Manipolazione dei dati. Viste. Transazioni.
- 4. Accesso alle basi di dati da software. Accesso da software interno mediante PL/pgSQL. Accesso da software esterno mediante il protocollo JDBC di Java.
- 5. La progettazione concettuale. Modelli concettuali. Il modello Entità-Relazione. Metodologie per la progettazione concettuale. Qualità di uno schema concettuale.
- 6. La progettazione logica/fisica. Ristrutturazione dello schema ER. Traduzione diretta nel modello relazionale. Ristrutturazione dello schema relazionale. Cenni di progettazione fisica.
- 7. (Argomento facoltativo) Introduzione ai modelli e ai sistemi NoSQL. Proprietà dei modelli NoSQL. Cenno ai sistemi NoSQL. Modelli a documenti ed il sistema MongoDB. Il modello a grafo ed il sistema Neo4j.
- Il test SQL: affinché lo studente possa prenotarsi per l'esame ella/egli deve aver superato il test di idoneità su SQL. Il primo test SQL, riservato a coloro che frequentano il corso, sarà tenuto durante le lezioni.
Dopo la edizione del test svolta durante il periodo di lezione e riservate agli studenti frequentanti, le prove del test sono previste a gennaio, marzo, maggio e settembre 2024. Le prove si svolgono di norma nel laboratorio di via Tiburtina ed ognuna consiste nello scrivere una porzione di codice SQL usando un opportuno DBMS e avendo a disposizione una base di dati sulla quale poter verificare la correttezza di quanto prodotto.
Ricordiamo che, una volta superato il test SQL, lo studente si può prenotare e presentarsi per la prova d'esame ad un qualunque appello dello stesso anno accademico. Essendo il corso di Basi di dati erogato da settembre a dicembre, ed essendo quindi il primo appello dopo le lezioni quello di gennaio, questo vuol dire che lo studente in ogni anno accademico in cui supera il test SQL si può prenotare per un qualunque appello fino a quello di settembre (o ottobre, se lo studente può partecipare all'appello straordinario di ottobre), ma non oltre. All'inizio di ogni anno accademico, la lista di coloro che hanno superato il test viene azzerata e quindi chi vuole superare l'esame di basi di dati deve rifare il test stesso.
- Punti bonus: Così come la lista di coloro che hanno superato il test viene azzerata all'inizio di ogni accademico, anche eventuali punti bonus ottenuti da uno studente (per il test SQL o per altro) vengono azzerati all'inizio dell'anno accademico.
- In cosa consiste l'esame: l'esame consiste di una prova scritta ed eventualmente di una prova orale, a discrezione del docente. Nella prova scritta, per la quale si hanno a disposizione 2 ore, si richiede lo sviluppo di un progetto di basi di dati di dimensione ridotte e la risposta ad altre domande relative al programma del corso. Nel caso in cui il docente reputi necessario un orale per effettuare correttamente la valutazione dell'esame, lo studente viene convocato per una prova orale che potrà consistere in una discussione dell'elaborato della prova scritta e in altre domande sul programma d'esame.
- Testi di esame: si possono consultare i testi d'esame degli appelli di diversi anni accademici
- Prenotazione degli esami: per la prenotazione, gli studenti devono utilizzare il servizio del sistema Infostud.
- Calendario previsto degli esami
- Primo appello: gennaio 2024
- Secondo appello: febbraio 2024
- Primo appello straordinario (per studenti fuori corso, part time, con disabilità e con D.S.A.): aprile 2024
- Terzo appello: giugno 2024
- Quarto appello: luglio 2024
- Quinto appello: settembre 2024
- Secondo appello straordinario (per studenti studenti part-time, fuori corso, iscritti per l’A.A. 2023-2024 al terzo anno della laurea e al secondo anno della laurea magistrale, studenti con disabilità e con D.S.A.): ottobre 2024
- I dati sulla valutazione del corso per gli anni accademici precedenti sono pubblicati nelle pagine relative alle edizioni precedenti del corso stesso. I dati della edizione 2023/2024 verranno pubblicati in questa pagina appena disponibili.
- Anno accademico 2022/2023
- Anno accademico 2021/2022
- Anno accademico 2020/2021
- Anno accademico 2019/2020
- Anno accademico 2018/2019
- Anno accademico 2017/2018
- Anno accademico 2016/2017
- Anno accademico 2015/2016
- Anno accademico 2014/2015
- Anno accademico 2013/2014
- Anno accademico 2012/2013
- Anno accademico 2011/2012
- Anno accademico 2010/2011
- Anno accademico 2009/2010
- Anno accademico 2008/2009
- Per gli anni accademici dal 2001 al 2007, le pagine web sono state dismesse.