Basi di Dati
Docente: Prof. Pierangela Samarati
Programma
-
M1 - 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, personalità
coinvolte nella gestione delle basi di dati.
-
M2 - MODELLO RELAZIONALE E ALGEBRA 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.
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.
-
M3 - 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.
-
M4 - 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.
-
M5 - 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.
-
M6 - 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.
-
M7 - 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 disttribuite:
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.
-
M8 - DATI SEMISTRUTTURATI
XML. Definizione di dati semistrutturati in XML. Interrogazione di
dati XML: XQuery e XPath; espressioni FLOWR.
-
M9 - 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.
-
M10 - 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.
Lucidi delle lezioni
-
-
Materiale di riferimento
- P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone,
, 5a edizione, McGraw-Hill, 2018.
-
S. Foresti, E. Pedrini, S. De Capitani di Vimercati,
,
Pitagora ed., 2006.
|