Docenti
e le pagine web dei docenti.
CAPACITÀ RELATIVE ALLE DISCIPLINE
1.1. Conoscenza e capacità di comprensione
Concetto di “modello dei dati”.
Modelli per la progettazione concettuale di una base di dati.
Il modello relazionale.
Linguaggi formali per la definizione e la manipolazione dei dati: algebra relazionale e calcolo relazionale.
Elementi architetturali di un sistema di gestione dei dati.
Politiche e meccanismi per la gestione concorrente delle transazioni.
Algoritmi e strutture dati per l’indicizzazione efficiente dei dati.
1.2. Conoscenza e capacità di comprensione applicate
Elementi di progettazione concettuale: analisi e raccolta dei requisiti, diagrammi Entità/Relazione.
Progettazione logica e fisica di una base di dati.
Il linguaggio SQL.
Procedure memorizzate, funzioni definite dall’utente e trigger.
Casi di studio: i sistemi di gestione dei dati PostgreSQL e MySQL.
CAPACITÀ TRASVERSALI / SOFT SKILLS
2.1. Autonomia di giudizio
Analizzare e formalizzare i requisiti fondamentali di un sistema informativo.
Confrontare soluzioni diverse di un problema di gestione dei dati.
Formulare in modo corretto interrogazioni complesse.
Valutare l’opportunità o meno di usare strutture d’indicizzazione per l’ottimizzazione delle interrogazioni.
2.2. Abilità comunicative
Interagire con i soggetti direttamente o indirettamente coinvolti in un progetto di gestione dei dati.
Motivare le scelte poste in atto in tutte le fasi della progettazione di un sistema informativo.
2.3. Capacità di apprendimento
Apprendere in modo autonomo il funzionamento di ulteriori software di gestione di gestione dei dati.
Approfondire ulteriori tematiche inerenti alle basi dei dati, quali, ad esempio, le basi di dati XML, i data warehouse, la sicurezza e protezione dei dati.
Affrontare le problematiche di gestione dei dati in applicazioni specifiche, come ad esempio, le basi di dati biologici o spazio-temporali.
Modelli Entità/Relazioni (ER) e relazionale. Metodologie, tecniche e modelli per il progetto di una base di dati; costrutti di base del modello ER: tipi e istanze di entità e relazioni, attributi e chiavi (identificatori interni ed esterni, entità deboli), dominio di un attributo e utilizzo dei NULL, vincoli di partecipazione e rapporti di cardinalità, relazioni ricorsive e ruoli, relazioni di grado >= 2, diagrammi ER; documentazione di schemi ER: tecniche di documentazione, regole di gestione; costrutti avanzati: specializzazioni e categorie. Modellazione dei dati in UML (cenni). Modello relazionale: nozioni di base, relazioni, vincoli intra- e inter-relazionali, schemi e istanze, operazioni di aggiornamento delle relazioni, politiche di reazione alle violazioni dei vincoli.
Progettazione delle basi di dati. Progettazione concettuale: raccolta e analisi dei requisiti, criteri generali di rappresentazione, strategie di progetto, qualità di uno schema concettuale, strumenti. Progettazione logica: analisi delle prestazioni su schemi ER, ristrutturazione di schemi ER (analisi delle ridondanze, eliminazione delle gerarchie, partizionamento/accorpamento di entità e/o relazioni, scelta delle chiavi primarie), traduzione di schemi ER in schemi relazionali; teoria della progettazione delle basi di dati relazionali: dipendenze funzionali, scomposizione di relazioni (lossless-join e conservazione delle dipendenze), forme normali.
Algebra relazionale, calcolo relazionale e SQL. Algebra relazionale: operazioni di base, derivate e addizionali, interrogazioni, ottimizzazione algebrica, limiti dell’algebra relazionale; calcolo relazionale: nozioni di base, calcoli relazionali su domini e su tuple con dichiarazioni di range, confronto tra i 2 calcoli, legame tra calcolo relazionale e algebra relazionale. SQL: definizione dei dati; interrogazioni; istruzioni di aggiornamento; altre definizioni dei dati (vincoli di integrità generici, viste, specifica di vincoli di addizionali sotto forma di asserzioni); il DBMS PostgreSQL; cenni a SQL e linguaggi di programmazione (trigger, funzioni e procedure).
Organizzazione fisica dei dati. Memorizzazione dei record ed organizzazione dei file primari: introduzione, gestione della memoria secondaria, memorizzazione di file di record su disco, operazioni sui file, file di record non ordinati e ordinati, tecniche di hashing, altre organizzazioni dei file primari, uso della tecnologia RAID per parallelizzare l’accesso a disco. Strutture di indicizzazione dei file: indici ordinati di singolo livello, multilivello statici, multilivello dinamici (B-alberi e B+-alberi), altri tipi di indice (cenni).
Tecnologia delle basi di dati centralizzate. Transazioni: introduzione, proprietà, scheduling e recupero delle transazioni, tecniche di serializzazione, supporto alle transazioni in SQL. Gestore del buffer: architettura, primitive. politiche di gestione, gestore del buffer e file system. Controllo della concorrenza: problematiche, architettura, anomalie delle transazioni concorrenti, tecniche basate su viste, conflitti, locking a due fasi (2PL e 2PL stretto) e timestamp, tecniche multiversione, granularità dei dati. Controllo dell’affidabilità: concetti di base, architettura, memoria stabile, file di log, gestione delle transazioni, gestione dei guasti. Elaborazione e ottimizzazione delle interrogazioni: i cataloghi di sistema; ottimizzazione delle interrogazioni (rappresentazione interna, profili, ottimizzazione basata sui costi); progettazione fisica di una base di dati.
– Slide e dispense sul sito del materiale didattico e sul sito del docente.
– Uno tra i seguenti due testi:
R. Elmasri, S. Navathe, Fundamentals of Database Systems (7th Edition), Pearson International Education / Addison Wesley, 2016.
P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, Basi di Dati (quinta edizione), McGraw-Hill, 2018.
Università degli Studi di Udine
Dipartimento di Scienze Matematiche, Informatiche e Fisiche (DMIF)
via delle Scienze 206, 33100 Udine, Italy
Tel: +39 0432 558400
Fax: +39 0432 558499
PEC: dmif@postacert.uniud.it
p.iva 01071600306 | c.f. 80014550307
30 km from Slovenia border
80 km from Austria border
120 km from Croatia border
160 km South West of Klagenfurt (Austria)
160 km West of Lubiana (Slovenia)
120 km North East of Venezia (Italy)