| Introduzione alle Basi di dati |
 |
• Sistemi informativi e sistemi informatici.
• Le basi di dati.
• Il DBMS.
• Tipologie di utenti di un DBMS
• Linguaggi per basi dati: DDL e DML. |
| |
Architetture delle Basi di dati |
| |
• I modelli dei dati.
• Schemi e livelli di astrazione in una base di dati.
• L'architettura ANSI/SPARC a tre livelli.
• Linguaggi ed interfacce per basi dati.
• Architetture centralizzate e client/server. |
| |
Modello ER per modellare i dati |
| |
•
Modelli di dati concettuali ad alto livello per la modellazione dei dati.
• Applicazione di esempio.
• Tipi di entità, insiemi di entità, attributi e chiavi.
• Tipi di associazione, insiemi di associazioni, ruoli e vincoli.
• Entità deboli.
• Raffinamento progettazione ER. |
| |
Modello EER e modellazione UML |
| |
•
Sottoclassi, superclassi ed ereditarietà.
• Specializzazione/generalizzazione.
• Tipi di associazione di grado maggiore di due.
• Astrazione dati, rappresentazione della conoscenza e ontologia. |
| |
Il modello relazionale |
| |
•
Prodotto cartesiano e relazioni.
• Corrispondenze fra relazioni.
• Informazione incompleta e valori nulli.
• Vincoli di integrità. Vincoli intrarelazionali: vincoli di tupla, vincolo di chiave.
• Vincoli interrelazionali: vincoli di integrità referenziale.
• Aggiornamento egestione delle violazioni e dei vincoli. |
| |
L'algebra relazionale |
| |
• Operatori dell'algebra relazionale: operatori insiemistici, ridenominazione, proiezione, selezione, join.
• Join naturale.
• Join esterno.
• Theta-join.
• Interrogazioni in algebra relazionale.
• Trasformazioni di equivalenza per espressioni in algebra relazionale.
• Algebra con valori nulli.
• Viste. |
| |
| Leggere i dati da un db con diversi linguaggi |
| |
• Calcolo su domini.
• Costruzione delle formule: operatori logici and, or e not; quantificatore esistenziale e universale;
• Interrogazioni in calcolo sui domini.
• Calcolo su tuple con dichiarazione di range.
• Interrogazioni in calcolo su tuple.
• Limitazioni del calcolo relazionale. |
| |
Traduzione di schemi ER e EER a schemi relazionali |
| |
• Il processo di traduzione da ER a relazionale.
• Traduzione di costrutti EER in relazioni. |
| |
Principi di SQL/SQL Server |
| |
• Lo standard SQL-2.
• Definizione di schemi in SQL: tipi di dato di base e definiti dall'utente, definizione di tabelle; definzione dello schema; definizione di vincoli (intrarelazionali semplici, di integrità referenziale, e generici).
• Definizione di indici.
• Istruzioni per la modifica dello schema. Interrogazioni in SQL: il comando select; formule di selezione; ordinamento del risultato; join di tabelle. Uso di variabili.
• Operatori aggregati.
• Interrogazioni con raggruppamento.
• Interrogazioni nidificate.
• Operatori su insiemi.
• Istruzioni di inserimento, cancellazione e modifica.
• Le asserzioni.
• Le viste.
• Controllo degli accessi: identificazione, risorse e privilegi. |
| |
SQL: asserzioni, viste, trigger e tecniche di programmazione |
| |
• Specificazione vincoli mediante asserzioni.
• Viste in SQL.
• Trigger e concetti di basi di dati attive.
• Problematiche programmazione basi di dati.
• SQL embedded ed SQL dinamico.
• Funzioni.
• Stored procedure per le basi di dati. |
| |
Progettazione concettuale |
| |
• Fonti dei requisiti.
• Organizzazione e scrittura dei requisiti.
• Sviluppo del modello ER.
• Strategie di progetto: bottom-up, top-down, inside-out e ibrida.
• Qualità di uno schema concettuale.
• Strumenti CASE per la progettazione. |
| |
Progettazione logica |
| |
• Analisi delle prestazioni su schemi ER.
• Volume dei dati.
• Caratteristiche delle operazioni: schema di operazioni e tavola degli accessi.
• Ristrutturazione di schemi ER: analisi delle ridondanze, eliminazione delle generalizzazioni, partizionamento/accorpamento di entità e associazioni, scelta degli identificatori primari.
• Traduzione verso il modello relazionale.
• Traduzione di relazioni molti-a-molti, uno-a-molti e uno-a-uno.
• Un esempio di progettazione logica.
• Uso di strumenti CASE per la progettazione logica. |
| |
Dipendenze funzionali e normalizzazione per basi di dati relazionali |
| |
• Ridondanze e anomalie.
• Le dipendenze funzionali.
• Dipendenze non banali.
• Dipendenze e chiavi.
• Forma normale di Boyce e Codd.
• Normalizzazione in BCNF.
• Decomposizioni senza perdite.
• Decomposizioni con conservazione delle dipendenze.
• La terza forma normale.
• Decomposizione in 3FN.
• Normalizzazione e schemi concettuali. |
| |
Strato fisico: memorizzazione di dati, indici, elaborazione delle interrogazioni e progettazione fisica |
| |
• Memoria secondaria.
• Collocazione sul disco dei record di un file.
• Operazioni su file.
• Techiche hash. |
| |
Indici per file |
| |
• Tipi di indici ordinati a un solo livello e indici multilivello.
• Alberi B e alberi B1.
• Indici su chiavi multiple.
• Altri tipi di indici. |
| |
Transazioni |
| |
• Introduzione alla gestione delle transazioni.
• Concetti di transazione e di sistema. |
| |
Progetti da realizzare |
| |
• Supermarket.
• Videoteca.
• Internet Cafè.
• Progetti classici di SQL Server: World, Salila e Menagerie. |
| |