Project Description

Obiettivi

Il Corso ha l’obbiettivo di introdurre i formalismi, le metodologie e le tecnologie per la gestione dei Dati con una particolare enfasi per gli standard industriali legate alle Basi di Dati Relazionali. Nel Corso vengono anche introdotte le prassi principali in ambito industriale, relative ai linguaggi di progettazione (ER) e definizione dei dati (ER, SQL) sino agli standard di progettazione applicativa in ambito Web, come JDBC e PHP. Tra gli argomenti avanzati cenni sulle nozioni di Object-oriented DB design, ORM, e sulle evoluzioni non relazionali (noSQL) utilizzate negli scanri di Big Data Analytics.

Programma

1 Introduzione
Introduzione ai sistemi di basi di dati. Gestione dei dati. Una prospettiva storica. File system e DBSM. Vantaggi di un DBMS. Interrogazioni in un DBMS. Gestione delle transazioni. Struttura di un DBMS.

2 Il modello relazionale
Introduzione al modello relazionale. Chiavi e Vincoli di integrità sulle relazioni. Applicazione dei vincoli di integrità. Interrogazione di basi di dati relazionali. Introduzione alle viste.

3 Algebra relazionale
Introduzione. Algebra relazionale. Selezione e proiezione. Operazioni sugli insiemi. Join.
Esempi di interrogazioni algebriche

4 SQL
Introduzione ad SQL. Interrogazioni SQL di base. Operatori di UNION, INTERSECT e EXCEPT. Interrogazioni annidate. Interrogazioni annidate correlate. Operatori di confronto tra insiemi. Operatori di aggregazione: clausole GROUP BY e HAVING. Valori null. Join esterni. Vincoli di integrità complessi in SQL. Asserzioni su più tabelle. Trigger e basi di dati attive. Vincoli e trigger

5 Il modello Entità-Relazione
Progettazione di basi di dati e diagrammi ER.
Entità, attributi e insiemi di entità. Relazioni e insiemi di relazioni. Estensioni del modello ER. Vincoli di chiave. Vincoli di partecipazione. Entità deboli. Gerarchie di classi. Aggregazione. Progettazione concettuale con il modello ER. Progettazione concettuale per grandi organizzazioni

6 La progettazione logica: dallo schema ER al relazionale
Da insiemi di entità e relazioni a tabelle. Traduzione di insiemi di relazioni con vincoli di chiave. Traduzione di insiemi di relazioni con vincoli di partecipazione. La traduzione di insiemi di entità deboli. Traduzione delle gerarchie di classi. Traduzione di diagrammi ER con aggregazione.

7 La normalizzazione (*)
Introduzione al raffinamento degli schemi. Problemi causati dalla ridondanza. Decomposizioni. Dipendenze funzionali. Forme normali. Forma normale di Boyce-Codd. Proprietà delle decomposizioni. Normalizzazione. Raffinamento dello schema nella progettazione di basi di dati

8 Applicazioni tradizionali
L’accesso alle basi di dati da parte delle applicazioni. SQL incapsulato. Cursori. SQL dinamico. Introduzione a JDBC. Classi e interfacce JDBC. Esecuzione dei comandi SQL. SQLJ. Stored procedure

9 Applicazioni Internet
Introduzione alle reti di calcolatori e Web. Documenti HTML. Documenti XML. Introduzione all’XML. L’architettura delle applicazioni three-tier. Il livello di presentazione. Il livello intermedio

10 File e indici
Memorizzazione esterna dei dati. Organizzazioni dei file e indicizzazione. Strutture di dati per gli indici. Indici hash. Indici ad albero. Confronto tra organizzazioni di file. Indici e miglioramento delle prestazioni. Definizione degli indici in SQL:1999.

11 Esecuzione delle interrogazioni.
Il catalogo di sistema. Introduzione alla valutazione degli operatori. Percorsi di accesso. Algoritmi per operazioni relazionali. Introduzione all’ottimizzazione delle interrogazioni. Piani di valutazione delle interrogazioni

12. Argomenti Avanzati.
Object Oriented programming e Basi di Dati. Object Relational Modeling. Cenni ai paradigmi NoSQL.
Metadati e DB multimediali.

(*) I capitoli contrassegnati da (*) sono facoltativi: se ne consiglia caldamente la lettura ma non costituiranno materia d’esame.

Bibliografia di Riferimento del Corso

• Materiale Didattico fornito a lezione.
• Versione Italiana. “Sistemi di Basi di Dati”, di Raghu Ramakrishnan e Johannes Gehrke, Edizione Italiana, McGraw Hill, 2004
• Basi di Dati: testo Originale (in inglese). “Database Management Systems”, 3rd Edition, Raghu Ramakrishnan e Johannes Gehrke, McGraw Hill, 2000 (ISBN 0-07-232206-3).

0 crediti
60 ore di lezione
0° Anno
Laurea
0° semestre