Basi di Dati (A.A. 2018/2019)


A chi è rivolto il corso. Il corso, tenuto nel primo semestre (periodo didattico da settembre 2018 a dicembre 2018), è di 6 crediti, ed è rivolto 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 della programmazione, dei linguaggi di programmazione, delle strutture di dati, e dei 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 basati NOSQL.

  • Avvisi
    • 21 settembre 2018. Si avvertono gli studenti che le informazioni riguardo alla edizione del corso dell'anno accademico 2017-2018 sono riportate nella corrispondente pagina web dell'a.a. 2017/2018
    • 21 settembre 2018. Le lezioni iniziano il 24 settembre 2018.
  • Materiale didattico

    • D. Calvanese, G. De Giacomo, M. Lenzerini, Slides del corso.

      Le slides vengono rese disponibili mediante il sistema MOODLE, e sono scaricabili accedendo alla pagina del corso di Basi di dati in MOODLE. Gli studenti che vogliono scaricare il materiale didattico e che vogliano partecipare al forum del corso devono iscriversi accedendo alla pagina MOODLE del corso stesso. Si rende noto che tutti 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 Postgres per esercitazioni in SQL - preparato dal dott. Gianluca Cima: per Linux, per Windows
  • Lezioni: orari e aule
    • lunedì: [ore 16:00 - 17:00], Sede Marco Polo, Viale dello Scalo S. Lorenzo, 82, aula 204
    • martedì: [ore 17:00 - 19:00], Sede Marco Polo, Viale dello Scalo S. Lorenzo, 82, aula 204
    • venerdì:
      • Fino al 2 novembre 2018 compreso: [ore 08:00 - 10:00] primo turno e [ore 10:00 - 12:00] secondo turno, Laboratorio Paolo Ercoli, via Tiburtina 205, aula 17
      • Dal 9 novembre 2018: [ore 11:00 - 13:00], Sede Marco Polo, Viale dello Scalo S. Lorenzo, 82, aula 105
  • Esercitazioni

  • Lezioni: calendario e contenuti
    Week Lunedì (16:00 - 17:00)
    aula 204
    Martedì (17:00 - 19:00) aula 204 Venerdì (08:00 - 10:00) lab 17 o (10:00 - 12:00) lab 17 o (11:00 - 13:00) aula 105
    01 (Sep 24) Lezioni 1
    - Introduzione alle basi di dati
    - Basi di dati relazionali
    Lezioni 2,3
    - Algebra relazionale
    - Operatori insiemistici
    - Selezione e proiezione
    Lezioni 4,5
    - Esercitazione 1 in laboratorio: algebra relazionale (primo turno: A-K)
    02 (Oct 01)
    03 (Oct 8)
    04 (Oct 15)
    05 (Oct 22)
    06 (Oct 29)
    07 (Nov 05)
    08 (Nov 12)
    09 (Nov 19)
    10 (Nov 26)
    11 (Dec 03)
    12 (Dec 10)
    13 (Dec 17)
  • 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. La progettazione concettuale. Modelli concettuali. Il modello Entità-Relazione. Metodologie per la progettazione concettuale. Qualità di uno schema.
    • 5. La progettazione logica/fisica. Ristrutturazione dello schema ER. Traduzione diretta nel modello relazionale. Ristrutturazione dello schema relazionale. Cenni di progettazione fisica.
    • 6. Accesso alle basi di dati da software. Introduzione all'accesso a basi di dati mediante i linguaggi di programmazione. Il caso di Java: JDBC.
    • 7. Basi di dati NoSQL. . Il modello JSON. Sistemi NoSQL. Il sistema MongoDB.
  • Esami
    • Il test SQL: il test di idoneità su SQL deve essere superato affinché lo studente possa prenotarsi per l'esame. Nell'A.A. 2018/19, le prove del test si svolgeranno a dicembre, gennaio, febbraio, marzo, giugno e settembre. Le prove si svolgono di norma nel laboratorio di via Tiburtina ed ognuna consiste nello scrivere un certo numero di query SQL usando un opportuno DBMS e fornendo allo studente una base di dati sulla quale poter verificare la correttezza delle query. Se il laboratorio non è disponibile, la prova si svolge in un'aula, con i mezzi che l'aula stessa mette a disposizione. Il test di idoneità si intende o superato o non superato, e non ha associato alcun voto per lo studente.

      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. All'inizio di ogni anno accademico, la lista di coloro che hanno superato il test viene azzerata. 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 ultimo dell'anno solare, ma non oltre.

    • In cosa consiste l'esame: l'esame consiste di una prova scritta ed eventualmente di una prova orale. Nella prova scritta, per la quale si hanno a disposizione 2 ore, si richiede lo sviluppo di un piccolo progetto di basi di dati e la scrittura di alcune query in SQL. Se lo studente viene convocato per una prova orale, quest'ultima consisterà 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 ultimi appelli
    • Prenotazione degli esami: per la prenotazione, gli studenti devono utilizzare il servizio del sistema Infostud.
    • Calendario previsto degli esami
      • Primo appello: gennaio 2019,
      • Secondo appello: febbraio 2019,
      • Primo appello straordinario (per studenti fuori corso o part time): aprile 2019,
      • Terzo appello: giugno 2019,
      • Quarto appello: luglio 2019,
      • Quinto appello: settembre 2019
      • Secondo appello straordinario (per studenti fuori corso, part time o che abbiano finito la frequenza dei corsi): ottobre 2019
  • 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 2018/2019 verranno pubblicati in questa pagina appena disponibili.
  • Informazioni sulle edizioni passate del corso
  • Ricevimento studenti. Martedì, ore 17:00, al Dipartimento di Ingegneria Informatica Automatica e Gestionale "Antonio Ruberti", via Ariosto 25, Roma, secondo piano, stanza B203 (se disponibile), oppure stanza B217 (altrimenti) -- si prega di consultare la sezione delle news per eventuali notizie sulla data del prossimo ricevimento studenti