Basi di Dati

Laurea in Informatica - Università di Padova
Anno Accademico 2018/2019

Crediti: 9 CFU

Docente: Prof. Mauro Conti

Assistenti: Giuseppe Bernieri, Eleonora Losiouk

Annunci

  • [inserita il 27/09/2018] Si comunica che il corso di Basi di Dati inizierà il 04/10/2018.

Obiettivi del corso

L'obiettivo del corso è quello di introdurre lo studente alle tecniche di progettazione delle basi di dati. Si analizzeranno varie fasi dell'attività di progetto: analisi dei requisiti, progettazione concettuale della base di dati, trasformazione del progetto concettuale in un progetto logico, e implementazione delle funzionalità necessarie mediante un linguaggio di definizione e manipolazione dei dati che a questo progetto logico faccia riferimento. Si affronteranno anche alcune problematiche relative all'accesso alle basi di dati nei linguaggi di programmazione ed alla realizzazione di intefacce web alle basi di dati. Il corso dà luogo al conseguimento di 9 CFU.

Programma di massima del corso

Il programma del corso seguira in linea di massima la struttura del libro di testo, con alcune eccezioni.
  1. Introduzione
    1. Basi di dati e sistemi di gestione di basi di dati (DBMS)
    2. Architettura di un DBMS
    3. La progettazione di una base di dati
  2. La progettazione concettuale di una base di dati
    1. Il modello concettuale ad oggetti
    2. Progettazione concettuale di basi di dati mediante modello a oggetti
  3. La progettazione logica di una base di dati
    1. Il modello relazionale
    2. L'algebra ed il calcolo relazionale
    3. Progettazione logica di basi di dati mediante traduzione di schemi a oggetti in schemi relazionali
  4. Il linguaggio SQL
    1. Il data definition language di SQL
    2. Il data manipulation language di SQL
    3. Conoscenza procedurale: trigger, stored procedure.
    4. Transazioni
  5. La normalizzazione di schemi relazionali
    1. Dipendenze funzionali
    2. Scomposizione di relazioni, con preservazione di dati e/o dipendenze
    3. Forme normali per gli schemi di relazione (1NF, 2NF, 3NF e BCNF) e scomposizioni in forma normale
  6. Basi di dati nelle applicazioni (laboratorio)
    1. SQL nelle applicazioni (SQL embedded, call level interface)

Orario del corso

Il corso fa parte del II anno del Corso di Laurea in Informatica, Università di Padova, ed è collocato nel I semetre dell'Anno Accademico 2018/2019, con inizio il 01/10/2018, con il seguente orario:
 
Giorno Orario Aula
Lunedì 14.30 - 16.15 LuM250
Martedì 12.30 - 14.15 LuM250
Giovedì 14.30 - 16.15 LuM250

Il corso è tenuto dal prof. Mauro Conti. Gli assistenti alla didattica sono i postdoc Giuseppe Bernieri e Eleonora Losiouk, i quali supporteranno la didattica principalmente per quanto riguarda il progetto e le esercitazioni.

Il prof. Mauro Conti riceve su appuntamento. Per chiarimenti sul corso e sul progetto, è possibile contattare via mail il prof. Mauro Conti all'indirizzo conti[at]math.unipd.it aggiungendo sempre in copia conoscenza (CC) gli assistenti Giuseppe Bernieri (bernieri[at]math.unipd.it) ed Eleonora Losiouk (elosiouk[at]math.unipd.it).

Gruppo del corso

Quest'anno, il materiale e gli annunci relativi al corso di basi di dati verranno resi pubblici attraverso il gruppo moodle "basi_dati" all'indirizzo https://elearning.unipd.it/math/

L'iscrizione al suddetto gruppo sarà obbligatorio al fine della creazione degli account di laboratorio.

Modalità d'Esame

Le date degli appelli sono normalmente disponibili alla corrispondente pagina del Dipartimento di Matematica.

L'esame consiste in una prova scritta, in un progetto, e in una prova orale. La consegna del progetto è ed il superamento della prova scritta sono condizione necessarie per poter sostenere la prova orale (vedi la sezione Progetto per le modalità di esecuzione e consegna). Il progetto e la prova orale contribuisce alla valutazione per 3 crediti su 9.

La prova scritta può essere superata ottentendo una valutazione sufficiente nelle due prove parziali previste:
La prima prova parziale a metà del corso (probabilmente a fine Novembre). La data della seconda prova parziale coinciderà con quella del primo appello. La valutazione finale sarà la media delle valutazioni delle due prove, le quali devono essere entrambe superate con esito sufficiente (maggiore o uguale a 18/30).

Appello d'esame:
Al primo appello si potrà decidere se svolgere l'esame intero o solo il secondo parziale (solo se il primo è stato superato con la sufficienza). Consegnare il compito completo (prima e seconda parte) determina automaticamente la perdita del voto delle prove scritte sostenute in precedenza.

Chi verrà sorpreso a copiare, suggerire o consultare testi o appunti vedrà annullato il proprio compito e non potrà partecipare all'appello di esame successivo .

Progetti evidentemente indecenti o, peggio, copiati invalideranno il voto della prova scritta.

Il voto del compito scritto rimarrà valido per e solo l'anno accademico in cui è stato superato (ovvero fino al quinto appello orale).

La prova scritta contiene domande ed esercizi focalizzati principalmente su:

  • modellazione concettuale a oggetti di un DB
  • traduzione dal modello concettuale a oggetti a quello logico relazionale
  • query definite come espressioni nell'algebra relazionale
  • normalizzazione di schemi
  • definizione di schemi in SQL
  • query espresse in SQL
  • transazioni e aspetti procedurali di SQL
Alcuni testi dei precedenti appelli si possono trovare qui.

Per poter sostenere una determinata prova scritta è indispensabile essersi registrati alla corrispondente prova mediante il sistema UNIWEB. Questo è normalmente possibile solo fino a due giorni prima dell'esame stesso (la lista chiude due giorni prima dell'esame stesso alla mezzanotte ora italiana).

Per poter sostenere la prova orale è necessario aver superato con esito sufficiente la prova scritta, esseresi registrato nell'apposita lista UNIWEB (va bene registrarsi anche se non sapete ancora l'esito dello scritto), e aver consegnato il progetto entro le ore 11.59PM ora italiana del DECIMO giorno antecedente quello della prova orale che si intende sostenere (es. se si intende sostenere l'esame orale in data 17 Luglio, si deve consegnare il progetto entro le ore 11.59PM ora italiana del 7 Luglio).

Chi si fosse registrato a una lista di prenotazione e decidesse di non presentarsi è pregato di cancellarsi dalla lista o, in caso la lista fosse già chiusa, di darne tempestiva comunicazione al docente.

Durante l'esame non è possibile consultare testi, appunti o altro materiale. Chi copia o consulta bigliettini (o affini) vedrà annullato lo scritto corrente e non potrà sostenere l'appello successivo.

Il Progetto

Il progetto può essere svolto a gruppi di due studenti.

Le specifiche del progetto verrano precisate durante il corso (vedi Diario del corso alla fine della pagina).

La consegna del progetto è condizione necessaria per poter sostenere la prova orale.

  • La versione elettronica del progetto e della relazione dovrà essere consegnata almeno 10 giorni prima della prova orale che si intende sostenere.
  • Dovrete assicurarvi che le pagine web del progetto siano online nel vostro spazio web sul server di basi di dati. Dovranno essere fornire le eventuali credenziali di login (utilizzate nel progetto) in una sezione chiaramente segnalata all'interno della relazione.
  • La versione cartacea della relazione dovrà essere consegnata al docente contestualmente all'esame orale.

Riferimenti bibliografici

Il libro adottato è
  • P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone.
    Basi di dati..
    IV Edizione. McGraw Hill Education, 2014.
Risorse online: Altri libri consigliati per consultazione
  • A. Albano, G. Ghelli, R. Orsini.
    Fondamenti di basi di dati..
    2a Edizione. Zanichelli, 2005.
  • R. Elmasri, S. Navathe.
    Sistemi di basi di dati. Fondamenti.
    5a Edizione. Pearson/Addison Wesley, 2007.
  • L. Welling, L. Thomson.
    MySQL Tutorial.
    Pearson/Addison Wesley, 2004.