P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone

Basi di dati: concetti, linguaggi e architetture

Seconda edizione

McGraw-Hill Italia, 1999


Indice dettagliato

(indice sintetico)

Prefazione

1 Introduzione
1.1 Sistemi informativi, informazioni 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 relazionale
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 Definizione 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.5 Controllo dell'accesso
4.5.1 Risorse e privilegi
4.5.2 Comandi per concedere e revocare privilegi
4.6 Uso di SQL nei linguaggi di programmazione
4.6.1 I problemi di integrazione
4.6.2 Cursori
4.6.3 SQL dinamico
4.6.4 Procedure
4.7 Esempi riepilogativi

Parte Seconda
Progettazione di basi di dati

5 Metodologie e modelli per il progetto
5.1 Introduzione alla progettazione
5.1.1 Il ciclo di vita dei sistemi informativi
5.1.2 Metodologie di progettazione e basi di dati
5.2 Il modello Entita'-Relazione
5.2.1 I costrutti principali del modello
5.2.2 Altri costrutti del modello
5.2.3 Panoramica finale sul modello E-R
5.3 Documentazione di schemi E-R
5.3.1 Regole aziendali
5.3.2 Tecniche di documentazione

6 La progettazione concettuale
6.1 La raccolta e l'analisi dei requisiti
6.2 Criteri generali di rappresentazione
6.3 Strategie di progetto
6.3.1 Strategia top-down
6.3.2 Strategia bottom-up
6.3.3 Strategia inside-out
6.3.4 Strategia mista
6.4 Qualita' di uno schema concettuale
6.5 Una metodologia generale
6.6 Un esempio di progettazione concettuale
6.7 Strumenti CASE per la progettazione di basi di dati

7 La progettazione logica
7.1 Analisi delle prestazioni su schemi E-R
7.2 Ristrutturazione di schemi E-R
7.2.1 Analisi delle ridondanze
7.2.2 Eliminazione delle gerarchie
7.2.3 Partizionamento/accorpamento di concetti
7.2.4 Scelta degli identificatori principali
7.3 Traduzione verso il modello relazionale
7.3.1 Entita' e associazioni molti a molti
7.3.2 Associazioni uno a molti
7.3.3 Entita' con identificatore esterno
7.3.4 Associazioni uno a uno
7.3.5 Traduzioni di schemi complessi
7.3.6 Tabelle riassuntive
7.3.7 Documentazione di schemi logici
7.4 Un esempio di progettazione logica
7.4.1 Fase di ristrutturazione
7.4.2 Traduzione verso il relazionale
7.5 Progettazione logica con gli strumenti CASE

8 La normalizzazione
8.1 Ridondanze e anomalie
8.2 Dipendenze funzionali
8.3 Forma normale di Boyce e Codd
8.3.1 Definizione di forma normale di Boyce e Codd
8.3.2 Decomposizione in forma normale di Boyce e Codd
8.4 Proprieta' delle decomposizioni
8.4.1 Decomposizione senza perdita
8.4.2 Conservazione delle dipendenze
8.4.3 Qualita' delle decomposizioni
8.5 Terza forma normale
8.5.1 Definizione di terza forma normale
8.5.2 Decomposizione in terza forma normale
8.5.3 Altre tecniche di normalizzazione
8.6 Progettazione di basi di dati e normalizzazione
8.6.1 Verifiche di normalizzazione su entita'
8.6.2 Verifiche di normalizzazione su associazioni
8.6.3 Ulteriori decomposizioni di associazioni
8.6.4 Ulteriori decomposizioni di schemi concettuali

Parte Terza
Tecnologia delle basi di dati

9 Tecnologia di un database server
9.1 Definizione di transazione
9.1.1 Proprieta' acide delle transazioni
9.1.2 Transazioni e moduli di sistema
9.2 Controllo di concorrenza
9.2.1 Architettura
9.2.2 Anomalie delle transazioni concorrenti
9.2.3 Teoria del controllo di concorrenza
9.2.4 Meccanismi per la gestione dei lock
9.2.5 Blocco critico
9.3 Gestione del buffer
9.3.1 Architettura del buffer manager
9.3.2 Primitive per la gestione del buffer
9.3.3 Politiche di gestione del buffer
9.3.4 Relazione tra buffer manager e file system
9.4 Controllo di affdabilita'
9.4.1 Architettura del controllore della affdabilita'
9.4.2 Organizzazione del log
9.4.3 Gestione delle transazioni
9.4.4 Gestione dei guasti
9.5 Strutture fisiche di accesso
9.5.1 Architettura del gestore degli accessi
9.5.2 Gestione delle tuple nelle pagine
9.5.3 Strutture sequenziali
9.5.4 Strutture con accesso calcolato
9.5.5 Strutture ad albero
9.6 Ottimizzazione delle interrogazioni
9.6.1 Profili delle relazioni
9.6.2 Rappresentazione interna delle interrogazioni
9.6.3 Ottimizzazione basata sui costi
9.7 Progettazione fisica di una base di dati
9.7.1 Definizione degli indici in SQL

10 Architetture distribuite
10.1 Architettura client-server
10.2 Basi di dati distribuite
10.2.1 Applicazioni delle basi di dati distribuite
10.2.2 Autonomia locale e cooperazione
10.2.3 Frammentazione e allocazione dei dati
10.2.4 Livelli di trasparenza
10.2.5 Classificazione delle transazioni
10.3 Tecnologia delle basi di dati distribuite
10.3.1 Ottimizzazione di interrogazioni distribuite
10.3.2 Controllo di concorrenza
10.3.3 Atomicita' di transazioni distribuite
10.4 Protocollo di commit a due fasi
10.4.1 Nuovi record nel log
10.4.2 Protocollo in assenza di guasti
10.4.3 Protocolli di ripristino
10.4.4 Ottimizzazioni del commit a due fasi
10.4.5 Altri protocolli di commit
10.5 Interoperabilita'
10.5.1 Open Database Connectivity: ODBC
10.5.2 Commit standard: X-Open DTP
10.6 Cooperazione con sistemi preesistenti
10.7 Parallelismo
10.7.1 Parallelismo inter-query e intra-query
10.7.2 Parallelismo e frammentazione dei dati
10.7.3 Speed-up e scale-up
10.7.4 Benchmark delle transazioni
10.8 Basi di dati replicate
10.8.1 Nuove funzionalita' dei gestori della replicazione

Parte Quarta
Evoluzione delle basi di dati

11 Basi di dati a oggetti
11.1 Basi di dati a oggetti
11.1.1 Tipi
11.1.2 Classi
11.1.3 Metodi
11.1.4 Gerarchie di generalizzazione
11.1.5 Persistenza
11.1.6 Ridefinizioni dei metodi
11.1.7 Ridefinizione con raffnamenti di tipo
11.1.8 Il manifesto delle basi di dati a oggetti
11.2 Standard ODMG per le basi di dati a oggetti
11.2.1 Linguaggio di definizione degli oggetti: ODL
11.2.2 Linguaggio di interrogazione: OQL
11.3 Basi di dati relazionali e a oggetti
11.3.1 Modello dei dati di SQL-3
11.3.2 Linguaggio di interrogazione di SQL-3
11.3.3 Il manifesto delle basi di dati della terza generazione
11.4 Basi di dati multimediali
11.4.1 Tipi di dati multimediali
11.4.2 Interrogazioni su dati multimediali
11.4.3 Ricerca di documenti
11.4.4 Rappresentazione dei dati spaziali
11.5 Estensioni tecnologiche per le basi di dati a oggetti
11.5.1 Rappresentazione dei dati e degli identificatori
11.5.2 Indici complessi
11.5.3 Architettura client-server
11.5.4 Transazioni
11.5.5 Distribuzione e interoperabilita': CORBA

12 Basi di dati attive
12.1 Comportamento dei trigger
12.2 Definizione e uso dei trigger in Oracle
12.2.1 Sintassi dei trigger in Oracle
12.2.2 Comportamento dei trigger in Oracle
12.2.3 Esempio di esecuzione
12.3 Definizione e uso dei trigger in DB2
12.3.1 Sintassi dei trigger in DB2
12.3.2 Comportamento dei trigger in DB2
12.3.3 Esempio di esecuzione
12.4 Caratteristiche evolute delle regole attive
12.5 Proprieta' delle regole attive
12.6 Applicazioni delle basi di dati attive
12.6.1 Gestione dell'integrita' referenziale
12.6.2 Regole aziendali

13 Architetture e paradigmi per l'analisi dei dati
13.1 Architettura della data warehouse
13.2 Schema della data warehouse
13.2.1 Schema a stella
13.2.2 Schema a stella per una catena di supermercati
13.2.3 Schema a fiocco di neve
13.3 Operazioni per l'analisi dei dati
13.3.1 Interfacce per la formulazione delle query
13.3.2 Drill down e roll up
13.3.3 Data cube
13.4 Realizzazione della data warehouse
13.4.1 Indici bitmap e indici di join
13.4.2 Materializzazione delle viste
13.5 Data mining
13.5.1 Il processo di data mining
13.5.2 Problemi di data mining
13.5.3 Prospettive del data mining

14 Basi di dati e World Wide Web
14.1 Internet e World Wide Web: richiami
14.1.1 Internet
14.1.2 Il World Wide Web
14.1.3 HTML, un linguaggio per la specifica di ipertesti
14.1.4 Il protocollo HTTP
14.1.5 Gateway
14.2 Sistemi informativi su Web
14.2.1 Pubblicazione e consultazione sul Web:
comunicazione unilaterale
14.2.2 Transazioni sul Web: comunicazione bidirezionale
14.2.3 Commercio elettronico e altre nuove applicazioni
14.3 Progettazione di siti Web centrati sui dati
14.3.1 Un modello logico per ipertesti orientati ai dati
14.3.2 Livelli di rappresentazione negli ipertesti Web
14.3.3 Fasi di progettazione di un sito centrato sui dati
14.4 Tecniche e strumenti per l'accesso a basi di dati attraverso il Web
14.4.1 Accesso a basi di dati tramite programmi CGI
14.4.2 Strumenti di sviluppo
14.4.3 Limiti del protocollo CGI
14.4.4 Simulazione di connessioni di lunga durata
14.4.5 Soluzioni basate sul server
14.4.6 Soluzioni basate sul client

A Microsoft Access
A.1 Caratteristiche del sistema
A.2 La definizione delle tabelle
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 IBM 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 Estensioni di SQL per interrogazioni
B.3.2 Funzionalita' orientate agli oggetti di DB2

C Oracle PL/SQL
C.1 L'architettura di strumenti di Oracle
C.2 I domini di base
C.3 L'estensione a oggetti
C.4 Il linguaggio PL/SQL
C.4.1 Esecuzione di PL/SQL in un contesto client-server
C.4.2 Dichiarazioni di variabili e cursori
C.4.3 Strutture di controllo
C.4.4 Gestione delle eccezioni
C.4.5 Procedure
C.4.6 Moduli

Data ultimo aggiornamento 17/09/1999
Paolo Atzeni