Basi di dati (A.A. 2014/2015)


A chi è rivolto il corso. Il corso, tenuto nel primo semestre (periodo didattico da settembre 2014 a dicembre 2014), è di 6 crediti, ed è rivolto agli studenti del terzo anno del Corso di Laurea in Ingegneria Informatica della Sapienza Università di Roma. Inoltre, anche gli studenti (dell'ordinamento 2000) che devono ancora sostenere l'esame di Basi di dati da 5 crediti devono far riferimento a questo corso e devono quindi seguire le indicazioni in questo sito per tutte le informazioni concernenti gli appelli d'esame.
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 dei sistemi di gestione di basi di dati e delle metodologie di progettazione di basi di dati. Alla fine del corso lo studente dovrebbe avere acquisito tecniche e metodi per affrontare problemi di progettazione di basi di dati, e per utilizzare le funzionalità di base (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 alle basi di dati relazionali, e ai relativi sistemi di gestione fondati sul linguaggio SQL. Tuttavia, i metodi ed i principi impartiti nel corso hanno validità generale, e possono essere applicati anche in contesti in cui si utilizzano modelli di dati e sistemi di gestione diversi dai modelli e dai sistemi relazionali.

  • Avvisi
    • 8 gennaio 2015 Si possono consultare i testi d'esame e le soluzioni dell'appello di gennaio 2015.
    • 17 dicembre 2014 Le lezioni del corso sono terminate. Il docente ringrazia gli studenti che hanno seguito le lezioni, li invita ad effettuare la valutazione del corso, così come richiesto dal Consiglio d'Area, e, come già fatto gli scorsi anni, si impegna a pubblicare i risultati della valutazione in questa pagina, una volta che saranno resi disponibili dalla facoltà.
  • 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. Si rende noto che tutti gli studenti della Sapienza possono accedere al sistema MOODLE usando le credenziali ufficiali dell'ateneo.

      Sempre accedendo alla pagina del corso in MOODLE, si può partecipare al forum del corso.

    • Consigliato ma non necessario: R. Ramakrishnan, J. Gehrke. Sistemi di basi di dati. McGraw-Hill, 2004
  • Lezioni
    • Orario: lunedì [ore 08:30 - 10:00], mercoledì [ore 08:30 - 10:00] e venerdì [ore 08:30 - 10:00] nel periodo 29 settembre 2014 - 19 dicembre 2014
    • Aula: 33, via Eudossiana 18, Roma
    • Calendario e contenuto delle lezioni

      Settimana Lunedì (8:30 - 10:00) Mercoledì (8:30 - 10:00) Venerdì (8:30 - 10:30)
      01 (Set 29) Lezioni 1,2
      - Introduzione al corso
      - Il concetto di base di dati
      Lezioni 3,4
      - Definizione di relazione
      - Schemi e istanze di relazione
      Lezioni 5,6
      - Vincoli di integrità
      - Introduzione all'algebra relazionale
      02 (Ott 6) Lezioni 7,8
      - Algebra relazionale: unione, intersezione, differenza, ridenominazione
      Lezioni 9,10
      - Algebra relazionale: selezione, proiezione e join
      Lezioni 11,12
      - Esercitazione sull'algebra relazionale
      - Esercizi di autovalutazione sull'algebra relazionale
      03 (Ott 13) Lezioni 13,14
      - Introduzione ad SQL
      - Definizione di tabelle in SQL
      Lezioni 15,16
      - Vincoli di integrità in SQL
      - Inserimento, cancellazione e aggiornamento in SQL
      Lezioni 17,18
      - Interrogazioni in SQL
      - Il join in SQL
      04 (Ott 20) Lezioni 19,20
      - Varianti del join
      - Aggregazioni in SQL
      Lezioni 21,22
      - Operatori insiemistici in SQL
      - Query annidate in SQL
      Lezioni 23,24
      - Ulteriori aspetti di SQL (transazioni, viste, ecc.)
      05 (Ott 27) Lezioni 25,26
      - Esercitazione SQL
      ------------
      Lezioni 27,28
      - Introduzione alla progettazione concettuale
      - Entità, relazioni, attributi
      06 (Nov 03) Lezioni 29,30
      - Ruoli
      - Esercizi di progettazione concettuale
      Lezioni 31,32
      - La relazione ISA tra concetti
      Lezioni 33,34
      - La generalizzazione
      - Concetti disgiunti
      07 (Nov 10) Lezioni 35,36
      - La relazione ISA tra relazioni
      - Vincoli di cardinalità
      Lezioni 35,36
      - Vincoli di identificazione di entità
      - Vincoli di identificazione di relazione
      Lezioni 37,38
      - Esercitazione di progettazione concettuale
      08 (Nov 17) Lezioni 39,40
      - Esercitazione di progettazione concettuale
      - Metodologie di progettazione concettuale
      Lezioni 41,42
      - Introduzione alla progettazione logica
      - La nozione di carico applicativo
      Lezioni 43,44
      - Ristrutturazione dello schema concettuale
      09 (Nov 24) Lezioni 45,46
      - Esercitazione sulla ristrutturazione dello schema concettuale
      Lezioni 47,48
      Traduzione diretta concettuale-logica: entità
      Lezioni 49,50
      Traduzione diretta concettuale-logica: relazioni
      10 (Dic 01) Lezioni 51,52
      Esercitazione sulla traduzione diretta
      Lezioni 53,54
      Ristrutturazione dello schema logico
      ------------
      11 (Dic 08)
      ------------
      Lezioni 55,56
      Decomposizioni e accorpamenti
      Lezioni 57,58
      Esercizi su ristrutturazione dello schema logico
      12 (Dic 15) Lezioni 59,60
      - Esercizi finali
      - Introduzione a JDBC
      Lezioni 61,62
      - Uso di JDBC
      ------------
  • Esercitazioni
    • Mini tutorial su MySQL per esercitazioni in SQL - preparato dal Prof. Giuseppe De Giacomo, per Linux, Mac, Windows
    • Prima esercitazione su algebra relazionale (vedi slide sul modello relazionale)
    • Esercizi di autovalutazione su algebra relazionale. Si possono scaricare dalla pagina MOODLE del corso di Basi di dati le slide degli esercizi di autovalutazione sull'algebra relazionale. Sono 10 esercizi sui quali lo studente deve autovalutarsi, eventualmente consultando le soluzioni che verranno rese disponibili il 17 ottobre. Lo studente può considerare un punto per ogni esercizio. Se il punteggio complessivo ottenuto è 10, la preparazione è completamente adeguata. Se è compreso tra 8 e 9, la preparazione è adeguata, ma alcune con alcune da colmare. Se è compreso tra 6 e 7, la preparazione è carente, ovvero ha delle lacune importanti. Se è inferiore o uguale al 5, la preparazione è gravemente carente.
    • Esercitazione su SQL. Si possono scaricare dalla pagina MOODLE del corso di Basi di dati i testi degli esercizi della esercitazione SQL e gli script SQL per creare la relativa base di dati.
  • Programma 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.
  • Esami
    • 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 delll'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 degli esami
      • Primo appello: 8 gennaio 2015, ore 8:30, aula 33 di via Eudossiana 18
      • Secondo appello: 5 febbraio 2015, ore 8:30, aula 33 di via Eudossiana 18
      • Primo appello straordinario (per studenti fuori corso, part time o che abbiano finito la frequenza dei corsi): 17 aprile 2015, ore 16:00, aula 8 di via Eudossiana 18
      • Terzo appello: 12 giugno 2015, ore 8:30, aula 33 di via Eudossiana 18
      • Quarto appello: 15 luglio 2015, ore 8:30, aula 33 di via Eudossiana 18
      • Quinto appello: 10 settembre 2015, ore 8:30, aula 33 di via Eudossiana 18
      • Secondo appello straordinario (per studenti fuori corso, part time o che abbiano finito la frequenza dei corsi): 28 ottobre 2015, ore 8:30, aula B2 di via Ariosto 25
  • Dati sulla valutazione del corso da parte degli studenti
  • 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