Basi di Dati

Docente: Prof. Pierangela Samarati

Programma

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. M8 - DATI SEMISTRUTTURATI
    XML. Definizione di dati semistrutturati in XML. Interrogazione di dati XML: XQuery e XPath; espressioni FLOWR.
  9. 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.
  10. 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

  1. Lucidi delle lezioni su Ariel
  2. Sito per esercitarsi con SQL

Materiale di riferimento

  • P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, Basi di Dati, 5a edizione, McGraw-Hill, 2018.
  • S. Foresti, E. Pedrini, S. De Capitani di Vimercati, Eserciziario di Basi di Dati, Pitagora ed., 2006.