| Indice
1 Introduzione
1.1 Sistemi informativi, informzioni e dati
1.2 Basi di dati e sistemi di gestione di basi di dati
1.3 Modelli dei dati
1.3.1 Schemi e istanze
1.3.2 Livelli di astrazione nei DBMS
1.3.3 Indipendenza dei dati
1.4 Linguaggi e utenti delle basi di dati
1.4.1 Linguaggi per basi di dati
1.4.2 Utenti e progettisti
1.5 Vantaggi e svantaggi dei DBMS
Parte Prima - Basi di dati relazionali: modello e linguaggi
2 Il modello relazionale
2.1 Il modello relazionale:strutture
2.1.1 Modelli logici nei sistemi di basi di dati
2.1.2 Relazioni e tabelle
2.1.3 Relazioni con attributi
2.1.4 Relazioni e basi di dati
2.1.5 Informazione incompleta e valori nulli
2.2 Vincoli di integrita'
2.2.1 Vincoli di tupla
2.2.2 Chiavi
2.2.3 Chiavi e valori nulli
2.2.4 Vincoli di integrita' referenziale
2.3 Conclusioni
3 Algebra e calcolo relazionale
3.1 Algebra relazione
3.1.1 Unione, intersezione, differenza
3.1.2 Ridenominazione
3.1.3 Selezione
3.1.4 Proiezione
3.1.5 Join
3.1.6 Interrogazioni in algebra relazionale
3.1.7 Equivalenza di espressioni algebriche
3.1.8 Algebra con valori nulli
3.1.9 Viste
3.2 Calcolo relazionale
3.2.1 Calcolo relazionale su domini
3.2.2 Pregi e difetti del calcolo su domini
3.2.3 Calcolo su tuple con dichiarazioni di range
3.3 Datalog
4 SQL
4.1 Defizione dei dati in SQL
4.1.1 I domini elementari
4.1.2 Definizione di schema
4.1.3 Definizione delle tabelle
4.1.4 Definizione dei domini
4.1.5 Specifica di valori di default
4.1.6 Vincoli intrarelazionali
4.1.7 Vincoli interrelazionali
4.1.8 Modifica degli schemi
4.1.9 Cataloghi relazionali
4.2 Interrogazioni in SQL
4.2.1 Dichiarativita' di SQL
4.2.2 Interrogazioni semplici
4.2.3 Operatori aggregati
4.2.4 Interrogazioni con raggruppamento
4.2.5 Interrogazioni di tipo insiemistico
4.2.6 Interrogazioni nidificate
4.3 Manipolazione dei dati in SQL
4.3.1 Inserimento
4.3.2 Cancellazione
4.3.3 Modifica
4.4 Altre definizioni dei dati in SQL
4.4.1 Vincoli di integrita' generici
4.4.2 Asserzioni
4.4.3 Viste
4.4.4 Le viste per la scrittura di interrogazioni
4.4.5 Viste ricorsive in SQL:1999
4.5 Funzioni scalari
4.5.1 Famiglie di funzioni
4.5.2 Funzioni condizionali
4.6 Controllo dell'accesso
4.6.1 Risorse e privilegi
4.6.2 Comandi per concedere e revocare privilegi
4.7 Transazioni
4.8 Esempi riepilogativi
5 SQL nei linguaggi di programmazione
5.1 SQL Embedded
5.1.1 Cursori
5.1.2 SQL dinamico
5.2 Uso di Call Level Interface (CLI)
5.2.1 ODBC, OLE DB e ADO
5.2.2 Java Database Connectivity (JDBC)
5.3 Procedure
Parte Seconda - Progettazione di basi di dati
6 Metodologie e modelli per il progetto
6.1 Introduzione alla progettazione
6.1.1 Il ciclo di vita dei sistemi informativi
6.1.2 Metodologie di progettazione e basi di dati
6.2 Il modello Entita'-Relazione
6.2.1 I costrutti principali del modello
6.2.2 Altri costrutti del modello
6.2.3 Panoramica finale sul Modello E-R
6.3 Documentazione di schemi E-R
6.3.1 Regole aziendali
6.3.2 Tecniche di documentazione
6.4 Modellazione dei dati in UML
7 La progettazione concettuale
7.1 La raccolta e l'analisi dei requisiti
7.2 Criteri generali di rappresentazione
7.3 Strategie di Progetto
7.3.1 Strategia top-down
7.3.2 Strategia bottom-up
7.3.3 Strategia inside-out
7.3.4 Strategia mista
7.4 Qualita' di uno schema concettuale
7.5 Una metodologia generale
7.6 Un esempio di progettazione concettuale
7.7 Strumenti CASE per la progettazione di basi di dati
8 La progettazione logica
8.1 Analisi delle prestazioni su schemi E-R
8.2 Ristrutturazione di schemi E-R
8.2.1 Analisi delle ridondanze
8.2.2 Eliminazione delle generalizzazioni
8.2.3 Partizionamento/accorpamento di concetti
8.2.4 Scelta degli identificatori principali
8.3 Traduzione verso il modello relazionale
8.3.1 Entita' e associazioni molti a molti
8.3.2 Associazione uno a molti
8.3.3 Entita' con identificatore esterno
8.3.4 Associazioni uno a uno
8.3.5 Traduzioni di schemi complessi
8.3.6 Tabelle riassuntive
8.3.7 Documentazione di schemi logici
8.4 Un esempio di progettazione logica
8.4.1 Fase di ristrutturazione
8.4.2 Traduzione verso il relazionale
8.5 Progettazione logica con gli strumenti CAS
8.6 Progettazione fisica di una base di dati
9 La normalizzazione
9.1 Ridondanze e anomalie
9.2 Dipendenze funzionali
9.3 Forma normale di Boyce e Codd
9.3.1 Definizione di forma anormale di Boyce e Codd
9.3.2 Decomposizione in forma normale di Boyce e Codd
9.4 Proprieta' delle decomposizioni
9.4.1 Decomposizione senza perdita
9.4.2 Conservazione delle dipendenze
9.4.3 Qualita' delle decomposizioni
9.5 Terza forma normale
9.5.1 definizione di terza forma normale
9.5.2 Decomposizione in terza forma normale
9.5.3 Altre tecniche di normalizzazione
9.6 Progettazioni di basi di dati e normalizzazione
9.6.1 Verifiche di normalizzazione su entita'
9.6.2 Verifiche di normalizzazione su associazioni
9.6.3 Ulteriori decomposizioni di associazioni
9.6.4 Ulteriori decomposizioni di schemi concettuali
A - Microsoft Access
A.1 Caratteristiche del sistema
A.2 La definizione delle tablle
A.2.1 Specifica dei cammini di join
A.2.2 Popolamento delle tabelle
A.3 La definizione di query
A.3.1 Query by Example
A.3.2 L'interprete SQL
A.4 Maschere e report
A.5 La definizione di macro
B - DB2 Universal Database
B.1 Caratteristiche generali di DB2
B.1.1 Versioni del sistema
B.1.2 Istanze e schemi di DB2
B.1.3 Interazione con DB2
B.2 Gestione di una base di dati con DB2
B.2.1 Strumenti per la gestione interattiva
B.2.2 Programmi applicativi
B.3 Funzionalita' avanzate di DB2
B.3.1 Dati complessi
B.3.2 Extender
B.3.3 Tipi utente
B.3.4 Funzioni utente |