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).

  • Avvisi
    • 14 marzo 2024 Il Test SQL per l'appello di aprile si terrà il 25/3/2024 dalle ore 14:30 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 N. 3 (25/3/2024)". Le prenotazioni si chiudono il 21 marzo 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.
    • 22 febbraio 2024 L'esame di Basi di Dati dell'appello straordinario si svolgerà l'8 aprile 2023. Chi non si prenota su Infostud entro i tempi stabiliti non potrà partecipare all'esame e non ci sarà alcuna eccezione a questa regola. L'appello è riservato alle categorie di studenti indicate nell’art. 40, comma 6 del Manifesto Generale degli Studi.
    • 19 gennaio 2024 I rappresentanti delle studentesse e degli studenti hanno sollevato dubbi sulla modalità dello svolgimento dell'esame di Basi di Dati, in particolare per quanto riguarda il Test SQL. Sono in corso approfondimenti sul regolamento. Per tutelare le studentesse e gli studenti che sarebbero danneggiati da un eventuale, diciamo così, verdetto di irregolarità, è stato introdotto un test SQL il giorno 23 febbraio dalle ore 12 alle 14, la cui modalità precisa di svolgimento sarà comunicata più avanti, in relazione al numero di iscritti. ATTENZIONE: coloro che sceglieranno di svolgere il test quel giorno lo faranno, però, nella modalità che emergerebbe da un eventuale cambio di regole: dovranno iscriversi sia al test SQL (MOODLE) sia all'esame scritto dell'appello di febbraio (INFOSTUD) e supereranno l'esame se e solo se supereranno sia il test SQL sia la prova scritta. Se non supereranno il Test SQL oppure non supereranno la prova scritta, dovranno ripetere sia la prova del test SQL sia la prova scritta (quindi, indipendentemente da quale di queste due siano risultate non superate). Le prenotazioni per questo Test SQL straordinario si chiudono il 18 febbraio 2024, stesso giorno di chiusura delle prenotazioni per la prova scritta. Chi non si prenota entro questa data seguendo le modalità illustrate, non potrà partecipare al test SQL e non ci sarà alcuna eccezione a questa regola. RIPETO: NON CI SARÀ ALCUNA ECCEZIONE A QUESTA REGOLA.

      Si noti che quella di febbraio 2024 è una edizione straordinaria del test SQL: coloro che parteciperanno al Test SQL nelle date annunciate all'inizio dell'anno, lo faranno con le regole usuali, già illustrate nello stesso inizio d'anno.

    • 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.
  • Tutor
  • Materiale didattico
    • 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
  • Lezioni: orari e aule
    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 204
    • venerdì: [ore 08:00 - 11:00] Laboratorio Paolo Ercoli, via Tiburtina 205, aula 16
  • Esercitazioni
    Il materiale delle esercitazioni, comprese le soluzioni degli esercizi, è scaricabile accedendo alla sezione MOODLE del corso.

  • Lezioni: calendario e contenuti
    Week Lunedì (08:00 - 10:00) aula 204 Mercoledì (16:00 - 18:00) aula 204 Giovedì (10:00 - 12:00) aula 204 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: operazioni di decomposizione
    Lezioni 59,60
    - Ristrutturazione dello schema logico: operazioni di accorpamento
    ------
    12
    (Dec 11)
    Lezioni 61,62
    - Esercitazione 12: ristrutturazione dello schema logico
    Lezioni 63,64
    - Esercitazione 13: esercizi d'esame
    Incontro facoltativo
    - I sistemi NoSQL
    Esercitazione 14:
    - Discussione ed esercizi relativi al Test SQL
  • Programma preliminare del corso
    • 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.
  • Esami
    • Il test SQL: affinché lo studente possa prenotarsi per l'esame ella/egli deve aver superato la "prova di idoneità" su SQL (Test SQL). Il primo test SQL, riservato a coloro che frequentano il corso, è stato tenuto durante le lezioni.

      Dopo la edizione del test SQL svolta durante il periodo di lezione e riservate agli studenti frequentanti, le prove del test SQL sono previste a gennaio, marzo, maggio o giugno (a seconda della disponibilità del laboratorio), 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 SQL viene azzerata e quindi chi vuole superare l'esame di basi di dati deve rifare il test SQL stesso.

      AGGIORNAMENTO DEL 19/1/2024 I rappresentanti delle studentesse e degli studenti hanno sollevato dubbi sulla modalità dello svolgimento dell'esame di Basi di Dati, in particolare per quanto riguarda il Test SQL. Sono in corso approfondimenti sul regolamento. Per tutelare le studentesse e gli studenti che sarebbero danneggiati da un eventuale, diciamo così, verdetto di irregolarità, è stato introdotto un test SQL il giorno 23 febbraio dalle ore 12 alle 14, la cui modalità precisa di svolgimento sarà comunicata più avanti, in relazione al numero di iscritti. ATTENZIONE: coloro che sceglieranno di svolgere il test quel giorno lo faranno, però, nella modalità che emergerebbe da un eventuale cambio di regole: dovranno iscriversi sia al test SQL (MOODLE) sia all'esame scritto dell'appello di febbraio (INFOSTUD) e supereranno l'esame se e solo se supereranno sia il test SQL sia la prova scritta. Se non supereranno il Test SQL oppure non supereranno la prova scritta, dovranno ripetere sia la prova del test SQL sia la prova scritta (quindi, indipendentemente da quale di queste due siano risultate non superate). Le prenotazioni per questo Test SQL straordinario si chiudono il 18 febbraio 2024, stesso giorno di chiusura delle prenotazioni per la prova scritta. Chi non si prenota entro questa data seguendo le modalità illustrate, non potrà partecipare al test SQL e non ci sarà alcuna eccezione a questa regola. RIPETO: NON CI SARÀ ALCUNA ECCEZIONE A QUESTA REGOLA.

      Si noti che quella di febbraio 2024 è una edizione straordinaria del test SQL: coloro che parteciperanno al Test SQL nelle date annunciate all'inizio dell'anno, lo faranno con le regole usuali, già illustrate nello stesso inizio d'anno.

    • Punti bonus: Così come la lista di coloro che hanno superato il test SQL 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
  • Dati sulla valutazione del corso da parte degli studenti
    • 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.
  • Informazioni sulle edizioni passate del corso
  • Ricevimento studenti. Il martedì alle ore 17 on-line all'indirizzo https://meet.google.com/hzy-save-oqw -- si prega di consultare la sezione delle news per eventuali variazioni.