Basi di Dati
Docente: Prof. Pierangela Samarati
Programma
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
DATI SEMISTRUTTURATI
XML. Definizione di dati semistrutturati in XML. Interrogazione di
dati XML: XQuery e XPath; espressioni FLOWR.
-
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.
-
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, S. Paraboschi, R. Torlone,
Basi di Dati: Modelli e Linguaggi di Interrogazione,
Terza edizione, McGraw-Hill Italia, 2009
-
P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone,
Basi di Dati: Architetture e Linee di Evoluzione, Seconda edizione, McGraw-Hill Italia, 2007
-
S. Foresti, E. Pedrini, S. De Capitani di Vimercati,
,
Pitagora ed., 2006
[]
|