Corso di Basi di Dati - Dipartimento di Matematica e Informatica

Corso di Basi di Dati
A.A. 2011-12
Informazioni Generali
Il corso di Basi di Dati vale 10 crediti (4 dei quali dedicati alle attività di laboratorio) e si svolge nel
primo semestre del II anno del Corso di Laurea in Informatica.
Obiettivi formativi
Obiettivo del corso è fornire gli strumenti e le metodologie per la progettazione, per la
progettazione, la gestione e il mantenimento di basi di dati. L’attenzione è focalizzata sulle basi di
dati relazionali e sui relativi sistemi di gestione fondati sul linguaggio standard per DBMS relazionali
SQL. In particolare, si fornirà agli studenti la conoscenza dei costrutti di base e avanzati di SQL, delle
tecnologia per la gestione della concorrenza e il recovery di transazioni, delle tecniche di
memorizzazione, organizzazione, accesso ai dati.
Le attività di laboratorio sono dedicate allo svolgimento di un progetto didattico che permetta allo
studente di mettere in pratica le conoscenze acquisite durante le lezioni teoriche.
Programma del Corso
1. Introduzione: le basi di dati e i DBMS
2. Progettazione di basi di dati:
2.1. Progettazione concettuale
2.2. Progettazione logica
3. La progettazione concettuale
3.1. Il modello Entità-Relazione: entità, attributi, associazioni, generalizzazioni
3.2. Progettazione di uno schema concettuale
4. Il modello dei dati relazionale
4.1. Relazioni, chiavi primarie, chiavi secondarie, vincoli d’integrità
5. La progettazione logica
5.1. Ristrutturazione di schemi E-R
5.2. Traduzione di uno schema concettuale ristrutturato in uno schema logico relazionale
6. Algebra Relazionale
6.1. Operatori insiemistici (unione, intersezione, differenza)
6.2. Ridenominazione, selezione, proiezione
6.3. Join
6.4. L’Algebra Relazionale come linguaggio di interrogazione
7. SQL
7.1. SQL Data Definition Language:
7.2. Definizione di schemi in SQL: Definizione di tabelle, di vincoli (intra-relazionali semplici,
di integrità referenziale, generici).
7.3. Interrogazioni semplici
7.4. Operatori aggregati
7.5. Interrogazioni con raggruppamento
7.6. Interrogazioni di tipo insiemistico
7.7. Interrogazioni nidificate (operatori : in, not in, exists, not exist)
Corso di Basi di Dati
A.A. 2011-12
8. Viste, asserzioni e trigger in SQL, Procedure memorizzate (stored procedure e function)
9. Transazioni
9.1.
Concetti generali
9.1.1.
Specifica delle transazioni: commit e rollback
9.1.2.
Proprietà “acide” delle transazioni
9.2.
Controllo di affidabilità
9.2.1.
Organizzazione del log
Esecuzione delle transazioni e scrittura del log
9.2.2.
9.2.3.
Gestione dei guasti
9.3.
Controllo di concorrenza
9.3.1.
Anomalie delle transazioni concorrenti
9.3.2.
Teoria del controllo di concorrenza: serializzabilità e grafo dei conflitti
9.3.3.
Meccanismi per la gestione dei lock: protocolli 2PL e 2PL stretto
9.3.4.
Blocco critico
10. Organizzazione fisica di una base di dati
10.1. Metodi di accesso primari e secondari
10.2. Accesso sequenziale, funzioni hash, B-Tree e B+-tree
11. Ottimizzazione di interrogazioni
11.1. Ottimizzazione logica
11.2. Ottimizzazione fisica
11.3. Piani di esecuzione
Testi consigliati:
1. Atzeni et al, “Basi di Dati – Modelli e linguaggi di interrogazioni”, Terza Edizione, McGraw-Hill
2. Ramez A. Elmasri, Shamkant B. Navathe, Sistemi di basi di dati - Fondamenti e Complementi,
Pearson - Addison Wesley
3. A. Albano, Costruire Sistemi per Basi di Dati, Addison-Wesley, Milano, 2001.