Architettura dei sistemi per la gestione di basi di dati. Il modello Entity Relationship. Il modello relazionale. Algebra relazionale: operatori e query. Analisi e trasformazione di uno schema ER in uno schema relazionale. Dipendenze funzionali, forme normali, decomposizione di schemi. Introduzione alla gestione della concorrenza, affidabilità e log. Il linguaggio SQL: concetti base e caratteristiche evolute. MySQL, un sistema reale per la gestione di basi di dati.
- P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, Basi di dati, McGraw-Hill, 2023, sesta edizione.
- P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, Basi di dati, McGraw-Hill, 2018, quinta edizione.
- P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, Basi di dati - Modelli e linguaggi di interrogazione, McGraw-Hill, 2013, quarta edizione.
- Reference Manual for MySQL, http://www.mysql.com
- Altro materiale a disposizione sul sito del corso
Obiettivi Formativi
Conoscenze: lo studente acquisisce conoscenze sul modello relazionale, l'algebra relazionale e sulla metodologia di progettazione ER, imparando in particolare a trasformare uno schema ER in uno schema relazionale. Acquisisce inoltre i concetti di base e le caratteristiche più evolute del linguaggio SQL imparando così a tradurre lo schema relazionale, nonché le relative interrogazioni, in MySQL.
Competenze acquisite: lo studente acquisisce le competenze fondamentali per la progettazione e analisi di una base di dati relazionale e per l'utilizzo della stessa tramite un reale sistema per la gestione di basi di dati, quale MySQL. Le basi di dati di tipo relazionale oltre ad essere le più utilizzate, sono anche di primaria importanza per la definizione di concetti e metodologie sviluppate in successive proposte.
Capacità acquisite al termine del corso: lo studente acquisisce la capacità di progettare una base di dati che risponda ai requisiti richiesti da un'applicazione specifica, accompagnandola con una valutazione critica delle caratteristiche e delle prestazioni. Inoltre lo studente avrà la capacità di valutare criticamente basi di dati già progettate e/o implementate, ed eventualmente proporre modifiche atte a migliorarne la struttura. Infine, con le competenze acquisite sui linguaggi e sui sistemi per basi di dati lo studente sarà capace di implementare vari aspetti delle applicazioni che fanno riferimento ad un uso intensivo di grosse quantità di dati.
Prerequisiti
Corsi vincolanti: Programmazione
Metodi Didattici
CFU: 9
Numero di ore totali del corso: 225
Numero di ore per studio personale e altre attività formative di tipo individuale: 153
Numero di ore relative alle attività in aula: 72
Altre Informazioni
Frequenza delle lezioni ed esercitazioni: raccomandata
Strumenti a supporto della didattica UniFi E-Learning: http://e-l.unifi.it
Orario di ricevimento: previo appuntamento via e-mail.
Dipartimento di Statistica, Informatica, Applicazioni
Viale Morgagni, 65
50134 - Firenze (FI)
Tel: 055 2751509
E-Mail: donatella.merlini@unifi.it
Modalità di verifica apprendimento
L'esame consiste nelle seguenti attività:
- un progetto di gruppo (3 persone al massimo, vanno bene anche gruppi costituiti da una sola persona in caso di difficoltà a formare un gruppo) da consegnare tramite la piattaforma Moodle in un archivio .zip o .rar, secondo le scadenze riportate sul sito del corso. Il progetto consiste nella realizzazione di una base di dati a partire dalla fase di progettazione concettuale, cui dovrà seguire la fase di progettazione logica e quindi di realizzazione in MySQL. Il contesto della basi di dati è a scelta. I gruppi dovranno redigere una relazione in pdf (massimo 15 pagine) con la descrizione delle fasi di progettazione della basi di dati e uno script sql con la sua realizzazione in MySQL, organizzato secondo un template disponibile sul sito del corso. Lo script dovrà prevedere una parte di istruzioni DDL per la creazione e il popolamento della base di dati, con vincoli di integrità, e una parte di istruzioni DML per l'interrogazione della base di dati tramite istruzioni select e l'uso di procedure e funzioni. Dovranno anche essere utilizzate viste e trigger per mostrare la gestione di ulteriori vincoli sulla base di dati. Il progetto sarà valutato tenendo conto della forma e dei contenuti della relazione nonché degli aspetti DDL e DML dello script e peserà per 3 cfu sulla valutazione finale. Il progetto deve essere consegnato prima dell'orale, anche in un appello precedente a quello in cui viene fatto l'esame orale e quando superato vale per tutto l'anno accademico.
- un esame orale con interrogazione su tutto il programma, esercizi da svolgere e breve discussione del progetto.
Lo svolgimento degli esercizi servirà per valutare 1) la comprensione dei concetti visti a lezione relativi alla progettazione concettuale e logica, al modello relazionale, all'algebra relazionale, alla normalizzazione e alle transazioni, 2) la capacità di progettare e analizzare una base di dati relazionale, 3) la capacità di applicare le conoscenze acquisite per la progettazione di una base di dati che risponda ai requisiti richiesti, accompagnandola con una valutazione critica delle caratteristiche e delle prestazioni. Nella prova orale verrà valutata la conoscenza degli argomenti presentati, l'acquisizione del linguaggio tecnico adeguato al contesto, la capacità di mettere in relazione fra loro argomenti diversi del programma. L'esame orale peserà per 6 cfu sulla valutazione finale.
Programma del corso
Architettura dei sistemi per la gestione di basi di dati. Il modello Entity Relationship. Il modello relazionale. Algebra relazionale: operatori e query. Analisi e trasformazione di uno schema ER in uno schema relazionale. Dipendenze funzionali, forme normali, decomposizione di schemi. Normalizzazione 3NF e BCNF. Introduzione alla gestione della concorrenza, affidabilità e log. Il linguaggio SQL: concetti base e caratteristiche evolute. MySQL, un reale sistema per la gestione di basi di dati.