Basi di Dati con Laboratorio


Informazioni Generali

  • Docente: Dott.ssa Raffaella Gentilini
  • Orario di ricevimento: Martedi, ore 17-19, oppure su appuntamento.

  • Gli studenti che hanno svolto i compitini possono svolgere il laboratorio in una qualsiasi sessione di esame (prossime sessioni LAB: 15 gennaio/30 gennaio/ 13 febbraio). Per partecipare alla prova e necessario iscriversi utilizzando la piattaforma apposita.
  • Risultati del primo compitino di Basi di Dati AA. 2017-2018.

    Obbiettivi

    Il corso si propone di fornire le competenze essenziali relative a fondamenti, concetti, metodi e tecniche per il progetto e l'utilizzo delle basi di dati e dei sistemi di gestione delle basi di dati. Lo studente dovrebbe acquisire capacita'  di comprensione e utilizzo delle nozioni e strumenti basilari connessi alla progettazione e realizzazione delle basi di dati.

    Programma in Breve

    I. Introduzione ai database ed ai DBMS.
    II. Basi di Dati Relazionali: Modello e Linguaggi. Il modello relazionale. Algebra e calcolo relazionale. Cenni al linguaggio SQL (cfr. programma laboratorio).
    III. Progettazione di Basi di Dati. Metodologie e modelli per il progetto. Progettazione concettuale. Progettazione logica. Normalizzazione. Progettazione fisica.
    IV. Tecnologia dei DBMS. Transazioni, concorrenza, affidabilita'.

    Diario delle Lezioni

    Il seguente calendario delle lezioni conterra' un programma dettagliato, le copie delle slides e gli esercizi proposti durante le lezioni.

  • Introduzione ai database ed ai DBMS (lezione del 25/9/17)
    Presentazione del corso. Introduzione alle basi di dati: Caratteristiche dell'approccio con basi di dati; Categorie di utenti; Vantaggi e svantaggi dell'uso di un DBMS; Breve storia delle applicazioni di basi di dati. ([EN10]: Capitolo 1, oppure [EN05]: Capitolo 1) Slides Lezione 1 .
  • Il modello Relazionale. (lezioni del 26/9, 2/10, 3/10)
    Concetti e architettura di un sistema di basi di dati: Modelli di dati, schemi e istanze. Introduzione al modello relazionale per sistemi di basi di dati. Concetti fondamentali del modello relazionale: definizione formale di domini, attributi, tuple e relazioni nel modello relazionale. Nozioni di schema e stato applicate ai suddetti concetto. Vincoli del modello relazionale. Vincoli intrarelazionali: vincolo di dominio, di univocita', di tupla, di valore non nullo, e di integrita' dell'entita'.  Nozioni di superchiave, chiave candidata e chiave primaria di una tabella. Vincoli interrelazioneli: vincoli di integrita' referenziale e nozioni di chiave esterna (semplice e composta). ([EN10]: Capitolo 3 oppure [EN05]: Capitolo 5).
  • Algebra relazionale. (lezioni del 9/10,10/10, 16/10, 17/10, 23/10)
    Introduzione all'algebra relazionale. Operazioni insiemistiche dell'algebra relazionale: unione, intersezione e differenza. L'operazione di prodotto cartesiano. Operazioni unarie dell'algebra relazionale: ridenominazione, selezione, proiezione. L'operatore di join (theta-join, equijoin, join naturale). Funzioni e raggruppamento. Esercizi ed esempi. ([EN10]: Capitolo 6 (sezioni 6.1.3, 6.2, 6.3.1, 6.3.2, 6.3.3, 6.3.4, 6.4.1, 6.4.2, 6.4.3, 6.4.4, 6.5) oppure [EN05]: Capitolo 6 (sezioni 6.1, 6.2, 6.3.1, 6.3.2, 6.3.3, 6.3.4, 6.4.1, 6.4.2, 6.4.3, 6.4.4, 6.5).
  • Calcolo relazionale. (lezioni del 24/10, 30/10 e 1/10 )
    Il calcolo relazionale su tuple: variabili di tupla, espressioni e interrogazioni. I quantificatori universale ed esistenziale. Uso dei quantificatori nelle espressioni del calcolo relazionale su tuple. Esercizi ed esempi. [EN10]: Capitolo 6, parte sul Web ( sezione 6.6 ) oppure [EN05]: Capitolo 6, sezione 6.6.
  • Progettazione Concettuale (Modello ER) (lezioni del 6/11, 7/11, 20/11)
    La progettazione di BD. La progettazione concettuale. Il modello concettuale Entita -Relazione (ER): concetti ed esempi; Entita, attributi, chiavi, associazioni; Tipo e grado di associazione; Vincoli e attributi di associazione; Entita deboli; Notazioni e convenzioni grafiche. Il modello concettuale Entita'-Relazioni Esteso (EER). Specializzazione e generalizzazione di entita'. Vincoli e caratteristiche delle gerarchie di specializzazione e generalizzazione. Esempi di modellazione concettuale con i modelli ER ed EER.
    [EN10]: Capitolo 7, Capitolo 8 [EN05]: Capitolo 3, Capitolo 4. SlidesER SlidesEER
  • Traduzione da schemi ER/EER a schemi relazionali. (lezione del 21/11)
    Progettazione di basi di dati relazionali attraverso la traduzione da ER/EER a relazionale. Regole dell'algoritmo di traduzione per entita, associazioni, attributi composti e multipli. Traduzione dei costrutti di generalizzazione/specializzazione. Esercizi ed esempi. [EN10]: Capitolo 9. Slides
  • Normalizzazione. (lezione del 27/11)
    Linee guida informali di progettazione di schemi di relazione. Esercizi ed esempi. Slides_Parte1 ---- Slides_Parte2

    Bibliografia

    Il testo di riferimento per il corso e:
  • [EN10] --- R.A.Elmasri e S.B.Navathe: Sistemi di Basi di Dati -- Fondamenti, Pearson Addison-Wesley, 6a edizione, 2010. ( va bene anche la vecchia edizione: [EN05] --- R.A.Elmasri e S.B.Navathe: Sistemi di Basi di Dati -- Complementi, Pearson Addison-Wesley, 4a edizione, 2005. )
    Le fonti per eventuale materiale integrativo verranno indicate a lezione. Si tenga presente che gli argomenti trattati nel corso possono essere studiati o approfonditi anche consultando i seguenti testi.
  • [UW02] --- J.Ullman e J.Widom. First Course in Database Systems. 2a edizione. Prentice Hall
  • [ACPT09] --- P.Atzeni, S. Ceri, S. Paraboschi, e R. Torlone. Basi di Dati: Modelli e Linguaggi di Interrogazione. 3a edizione. McGraw-Hill. 2009

    Materiale Didattico

  • Raccolta di esercizi risolti.