Basi di Dati

Laurea in Informatica - Università di Padova
Anno Accademico 2015/2016

Crediti: 9 CFU

Docente: Prof. Mauro Conti

Assistenti: Nicolò Navarin, Riccardo Spolaor

Annunci

  • [inserita il 16/06/2016] Aggiornato il Diario con informazioni consegna progetto.
  • [inserita il 05/06/2016] Aggiornato il Diario.
  • [inserita il 18/04/2016] Aggiornato il Diario.
  • [inserita il 30/03/2016] Aggiornato il Diario.
  • [inserita il 09/03/2016] Aggiornato il Diario.
  • [inserita il 28/02/2016] Il 7 e 8 Marzo 2016 NON ci sarà lezione di Basi di Dati.
  • [inserita il 20/01/2016] Apertura della pagina web per il sito dell'anno accademico 2015/2016.

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 II semetre dell'Anno Accademico 2015/2016, con inizio il TBD, con il seguente orario:
 
Giorno Orario Aula
Lunedì, Martedì, Mercoledì 13.30 - 15.15 LuM250

Il corso è tenuto dal prof. Mauro Conti. Gli assistenti alla didattica sono il Dr. Nicolò Navarin ed il dottorando Riccardo Spolaor, 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 Cascavilla (nnavarin[at]math.unipd.it) e Riccardo Spolaor (riccardo.spolaor[at]math.unipd.it)

Gruppo del corso

Google Group DB1516_unipd (nella richiesta d'iscrizione indicate: MATRICOLA, nome, cognome, e EMAIL) Le informazioni fornite per l'iscrizione al suddetto gruppo saranno utilizzate per la 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 10.

La prova scritta può essere superata ottentendo una valutazione sufficiente nelle due prove parziali previste:
La prima prova parziale a metà del corso (probabilmente il 22 Aprile). 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.

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.

Diario del corso

Il seguente calendario delle lezioni conterrà il programma del corso, le date e i contenuti delle lezioni future sono indicative.

Data Tema della lezione
01/03/16 Presentazione del corso e introduzione: sistemi informativi,
sistemi informatici, e basi di dati
02/03/16 Sistemi di gestione di basi di dati (DBMS) Slides
09/03/16 Modello relazionale - parte 1 Slides
14/03/16 Modello relazionale - parte 2 [Vedi precedenti]
15/03/16 Algebra e calcolo relazionale - parte 1 Slides
16/03/16 Esercitazione sul capitolo 2 Slides
22/03/16 Calcolo relazionale - parte 2 [Vedi precedenti]
23/03/16 Calcolo relazionale - parte 3 [Vedi precedenti]
30/03/16 Metodologie e modelli per il progetto - parte 1 Slides
4/04/16 Esercitazione sul Calcolo relazionale Slides
5/04/16 Metodologie e modelli per il progetto - parte 2 [Vedi precedenti]
6/04/16 Esercitazione sul Calcolo relazionale e Metodologie e modelli per il progetto (parte 1) [Vedi precedenti]
11/04/16 Progettazione concettuale Slides
12/04/16 Progettazione logica - parte 1 Slides
18/04/16 Laboratorio 1a: Presentazione Progetto - parte 1 Slides
18/04/16 Esercitazione su Progettazione concettuale e logica Slides
19/04/16 Esercitazione simil-compitino Testo
20/04/16 Primo parziale Soluzioni
26/04/16 Progettazione logica - parte 2 [Vedi precedenti]
27/04/16 SQL base - parte 1 Slides
02/05/16 SQL base - parte 2 [Vedi precedenti]
03/05/16 Esercitazione su SQL base Slides
04/05/16 SQL evolute - parte 1 Slides
09/05/16 SQL evolute - parte 2 [Vedi precedenti]
10/05/16 Normalizzazione - parte 1 Slides
11/05/16 Esercitazione su SQL base e evoluto Slides
16/05/16 Laboratorio 2: query su customers Cartella
17/05/16 Normalizzazione - parte 2 [Vedi precedenti]
23/05/16 Esercitazione su normalizzazione Slides
24/05/16 Laboratorio 3a: query su genitori-figli Cartella
25/05/16 Laboratorio 3b: continuazione query su genitori-figli [Vedi precedenti]
30/05/16 Laboratorio 4: query su utenti-gruppi-file Cartella
31/05/16 Laboratorio 1b: Presentazione progetto - parte 2 Slides
01/06/16 Laboratorio 5: trigger e funzioni Cartella
06/05/16 Esercitazione simil-compitino Soon
06/05/16 Laboratorio 7: supporto al progetto -
16/06/16 Informazioni consegna progetto Slides


----------------------END OF PAGE-----------------------------