Basi di dati

A.A. 2023/2024
12
Crediti massimi
96
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
Scopo dell'insegnamento è quello di illustrare i concetti fondamentali delle basi di dati relazionali e dei sistemi di gestione (DBMS), i linguaggi (algebra relazionale ed SQL) per la gestione e l'interrogazione di basi di dati, le metodologie di progettazione delle basi di dati, la struttura interna di un sistema di gestione delle base di dati e la gestione delle transazioni. L'insegnamento si propone inoltre di introdurre i principali concetti relativi alle basi di dati distribuite, alla gestione dei dati semi-strutturati, alle basi di dati attive e alle basi di dati per il supporto alle decisioni.
Risultati apprendimento attesi
Al termine dell'insegnamento, lo studente dovrà essere in grado di gestire la progettazione, gestione e interrogazione di basi di dati relazionali e conoscere i concetti base relativi alla tecnologia dei sistemi di gestione di basi di dati anche in relazione all'organizzazione fisica, alla gestione delle transazioni, alla gestione di dati semi-strutturati, alle basi di dati attive e di supporto alle decisioni.
Corso singolo

Questo insegnamento può essere seguito come corso singolo.

Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Secondo quadrimestre

Programma
Basi di dati: Elementi
1. Introduzione alle basi di dati. Sistemi Informativi, sistemi organizzativi e sistemi informatici. Concetto di informazione e dato. Introduzione a basi di dati e DBMS, modello dei dati, concetto di schema ed istanza. Indipendenza logica e fisica dei dati, tipologia di linguaggi per basi di dati, entità coinvolte nella gestione delle basi di dati.

2. Modello relazionale. Modelli logici. Modello relazionale: relazioni vs tabelle; relazioni con attributi; notazioni; informazione incompleta e valori nulli. Vincoli di integrità: vincoli di tupla; chiavi e valori nulli; vincoli di integrità referenziale.

3. Algebra relazionale. Operatori di base (unione, intersezione, differenza, selezione e proiezione) ed operatori derivati (natural join, theta join, semi-join). Interrogazioni in algebra relazionale ed equivalenza di espressioni algebriche. Idiomi di interrogazione.

4. SQL. Data Definition Language: i domini elementari, definizione di schema, tabelle e di domini. Vincoli intrarelazionali ed interrelazionali. Interrogazioni in SQL: interrogazioni semplici, operatori aggregati, clausola di GROUP BY, interrogazioni di tipo insiemistico e nidificate. Operazioni di inserimento, modifica e cancellazione. Definizione di vincoli di integrità generici, asserzioni e viste. Controllo dell'accesso.

5. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Raccolta e analisi dei requisiti. Metodologia di progettazione. Fasi della progettazione. Il modello Entità-Relazione: costrutti (entità, relazione, attributo, cardinalità, identificatori, gerarchie); documentazione di schemi; regole. Strategie di progetto: top-down, bottom-up, inside-out, mista. Qualità di uno schema concettuale. Progettazione logica: ristrutturazione di schemi E-R (eliminazione delle gerarchie; scelta degli identificatori principali; partizionamento/accorpamento di entità e relazione); traduzione verso il modello relazionale; documentazione di schemi logici. Cenni alla progettazione fisica.

Basi di dati: Complementi
6. Organizzazione fisica delle basi di dati. Moduli per l'accesso ai dati. Memoria principale, memoria secondaria e buffer. Gestore del buffer e sue primitive. Organizzazione dei file: struttura sequenziale (seriale, ad array, ordinata), ad accesso calcolato (hash-based), ad indici (alberi). Alberi B e B+. Gestione delle tuple nelle pagine. Progettazione fisica e definizione degli indici.

7. Gestione delle transazioni. Definizione di transazione. Proprietà ACIDe delle transazioni. Transazioni e moduli di sistema. Gestore dell'affidabilità. Memoria stabile. Log: organizzazione, record e gestione. Guasti e loro gestione: ripresa a caldo e a freddo. Controllo della concorrenza. Anomalie delle transazioni concorrenti. Schedule seriali e serializzabili. View-equivalenza e conflict equivalenza. Locking a due fasi e sue varianti. Timestamp (monoversione e multiversione). Lock e loro gestione. Locking e livelli di isolamento in SQL. Deadlock e sua gestione. Livelock e starvation.

8. Architetture distribuite. Paradigmi per la distribuzione dei dati. Tipologie di architetture. Proprietà dei sistemi distribuiti. Architettura client-server. Basi di dati distribuite. Frammentazione e allocazione dei dati. Livelli di trasparenza. Transazioni in basi di dati distribuite: classificazione e gestione delle proprietà ACIDe. Ottimizzazione di query distribuite. Metodo di Lamport. Deadlock distribuiti: definizione e gestione. Protocolli di commit distribuito: commit a due fasi e sue varianti.

9. Dati semistrutturati. XML. Definizione di dati semistrutturati in XML. Interrogazione di dati XML: XQuery e XPath; espressioni FLOWR.

10. Basi di dati attive. Regole E-C-A. Trigger. Livelli e modalità di esecuzione. Caratteristiche evolute delle regole attive. Proprietà delle regole attive: terminazione, confluenza, determinismo delle osservazioni. Analisi di terminazione. Applicazioni delle regole attive.

11. Basi di dati per il supporto alle decisioni. OLTP vs OLAP. Basi di dati per il supporto alle decisioni (OLAP). Data warehouse: caratteristiche e architettura. Rappresentazione multidimensionale dei dati. Operazioni su dati multidimensionali. Realizzazione di un data warehouse. Progettazione di un data warehouse: schema a stella e a fiocco di neve. Operazioni su ROLAP. Aggregazione in SQL. Data mining: regole di associazione e di classificazione.
Prerequisiti
Sono richieste conoscenze relative a concetti di informatica di base.
A seguito di regole stabilite dal Collegio Didattico è obbligatorio il superamento dell'esame di Programmazione.
Metodi didattici
Video lezioni.
Materiale di riferimento
P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, Basi di Dati, 5 ed., McGraw-Hill Italia, 2018
Slide e video disponibili sulla piattaforma di erogazione on-line.
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste in una prova scritta volta ad accertare la preparazione e la comprensione della materia. La prova comprende domande di teoria ed esercizi. La durata della prova è 2:30h. La valutazione espressa in trentesimi terrà conto della correttezza, completezza e chiarezza espositiva delle risposte alle domande di teoria e agli esercizi. Durante la prova scritta non è consentito l'utilizzo di alcun materiale.
Nel corso del quadrimestre di erogazione è possibile sostenere l'esame tramite due prove in itinere (così come prescritto dalla erogazione online). Le prove in itinere sono organizzate come l'esame completo ma si focalizzano su parti del corso. Ciascuna prova in itinere è valutata in trentesimi e si considera superata se l'esito è di almeno 15/30. La media delle due prove deve essere maggiore di 18 affinché l'esame possa essere considerato superato.
INF/01 - INFORMATICA - CFU: 12
Lezioni: 96 ore
Docente/i
Ricevimento:
su appuntamento tramite mail
Ricevimento:
Su appuntamento
Dipartimento di Informatica