| Indice
Prefazione ix
Parte I Tecnologia delle basi di dati 1
1 Organizzazione fisica e gestione delle interrogazioni 3
1.1 Memoria principale, memoria secondaria e gestione dei buffer 4
1.1.1 Memoria secondaria: caratteristiche 5
1.1.2 Gestione dei buffer 5
1.1.3 DBMS e file system 8
1.2 Gestione delle tuple nelle pagine 9
1.3 Strutture primarie per l’organizzazione di file 10
1.3.1 Strutture sequenziali 11
1.3.2 Strutture con accesso calcolato 13
1.4 Strutture ad albero 18
1.4.1 Indici primari e secondari 18
1.4.2 Strutture ad albero dinamiche 22
1.5 Gestore delle interrogazioni: esecuzione e ottimizzazione 28
1.5.1 Profili delle relazioni 29
1.5.2 Rappresentazione interna delle interrogazioni 31
1.5.3 Ottimizzazione basata sui costi 35
1.6 Progettazione fisica di una base di dati 37
1.6.1 Scelte di progettazione fisica 37
1.6.2 Definizione degli indici in SQL 38
2 Gestione delle transazioni 45
2.1 Le transazioni 45
2.1.1 Specifica delle transazioni: commit e rollback 45
2.1.2 Proprieta' “acide” delle transazioni 47
2.1.3 Transazioni e moduli di sistema 48
2.2 Controllo di affidabilita' 50
2.2.1 Architettura del controllore della affidabilita' 50
2.2.2 Organizzazione del log 52
2.2.3 Esecuzione delle transazioni e scrittura del log 54
2.2.4 Gestione dei guasti 56
2.3 Controllo di concorrenza 59
2.3.1 Architettura 59
2.3.2 Anomalie delle transazioni concorrenti 60
2.3.3 Teoria del controllo di concorrenza 63
2.3.4 Meccanismi per la gestione dei lock 74
2.3.5 Blocco critico 77
2.3.6 Gestione della concorrenza in SQL:1999 80
3 Architetture distribuite 85
3.1 Architettura client-server 87
3.2 Basi di dati distribuite 89
3.2.1 Applicazioni delle basi di dati distribuite 90
3.2.2 Autonomia locale e cooperazione 91
3.2.3 Frammentazione e allocazione dei dati 92
3.2.4 Livelli di trasparenza 94
3.2.5 Classificazione delle transazioni 97
3.3 Tecnologia delle basi di dati distribuite 98
3.3.1 Ottimizzazione di interrogazioni distribuite 98
3.3.2 Controllo di concorrenza 99
3.3.3 Atomicita' di transazioni distribuite 104
3.4 Protocollo di commit a due fasi 105
3.4.1 Nuovi record nel log 105
3.4.2 Protocollo in assenza di guasti 106
3.4.3 Protocolli di ripristino 109
3.4.4 Ottimizzazioni del commit a due fasi 110
3.4.5 Altri protocolli di commit 111
3.4.6 Interoperabilita' del commit a due fasi: X-Open DTP 113
3.5 Parallelismo 115
3.5.1 Parallelismo inter-query e intra-query 116
3.5.2 Parallelismo e frammentazione dei dati 116
3.5.3 Speed-up e scale-up 118
3.5.4 Benchmark delle transazioni 119
3.6 Basi di dati replicate 120
3.6.1 Nuove funzionalit`a dei gestori della replicazione 121
3.7 Cooperazione di basi di dati eterogenee e autonome 122
4 Basi di dati e World Wide Web 129
4.1 Internet e World Wide Web 130
4.1.1 Internet 130
4.1.2 Il World Wide Web 131
4.1.3 Il protocollo HTTP 133
4.1.4 HTML, il linguaggio per la specifica di ipermedia 136
4.2 Tecniche per la costruzione dinamica di pagine Web 139
4.2.1 Common Gateway Interface 139
4.2.2 Le estensioni del Web Server 145
4.2.3 Template di pagina e Server Side Scripting 149
4.3 Le architetture basate su application server 151
4.4 Progettazione delle applicazioni Web 154
4.4.1 Analisi dei requisiti 154
4.4.2 Progettazione concettuale della base di dati 157
4.4.3 Progettazione dell’ipertesto 159
4.4.4 Realizzazione dell’applicazione 164
Parte II Evoluzione delle basi di dati 169
5 Basi di dati a oggetti 171
5.1 Basi di dati a oggetti 172
5.1.1 Tipi 172
5.1.2 Classi 177
5.1.3 Metodi 179
5.1.4 Gerarchie di generalizzazione 183
5.1.5 Persistenza 186
5.1.6 Ridefinizioni dei metodi 187
5.1.7 Ridefinizione con raffinamenti di tipo 189
5.1.8 Il manifesto delle basi di dati a oggetti 191
5.2 Standard ODMG per le basi di dati a oggetti 192
5.2.1 Linguaggio di definizione degli oggetti: ODL 193
5.2.2 Linguaggio di interrogazione: OQL 195
5.3 Basi di dati relazionali a oggetti 199
5.3.1 Modello dei dati di SQL:1999 199
5.3.2 Linguaggio di interrogazione di SQL:1999 205
5.3.3 Il manifesto delle basi di dati della terza generazione 205
5.4 Basi di dati multimediali 206
5.4.1 Tipi di dati multimediali 207
5.4.2 Interrogazioni su dati multimediali 208
5.4.3 Ricerca di documenti 209
5.4.4 Rappresentazione dei dati spaziali 210
5.5 Estensioni tecnologiche per le basi di dati a oggetti 212
5.5.1 Rappresentazione dei dati e degli identificatori 212
5.5.2 Indici complessi 214
5.5.3 Architettura client-server 215
5.5.4 Transazioni 216
5.5.5 Distribuzione e interoperabilita': CORBA 216
6 Dati semistrutturati in XML 223
6.1 Definizione di dati semistrutturati in XML 224
6.2 Interrogazione di dati XML 228
6.2.1 XPath 228
6.2.2 XQuery 229
6.2.3 XSL 231
6.3 Gestione di dati XML con DBMS relazionali 234
6.4 Le basi di dati XML native 238
6.5 XML per la pubblicazione multi-canale di contenuti su Web 239
6.6 Web Service e XML per l’integrazione dei sistemi informativi 241
7 Basi di dati attive 247
7.1 Comportamento dei trigger 248
7.2 Definizione e uso dei trigger in Oracle 249
7.2.1 Sintassi dei trigger in Oracle 249
7.2.2 Comportamento dei trigger in Oracle 250
7.2.3 Esempio di esecuzione 251
7.3 Definizione e uso dei trigger in DB2 252
7.3.1 Sintassi dei trigger in DB2 252
7.3.2 Comportamento dei trigger in DB2 253
7.3.3 Esempio di esecuzione 254
7.3.4 Definizione e uso dei trigger in SQL:1999 255
7.4 Caratteristiche evolute delle regole attive 255
7.5 Propriet`a delle regole attive 256
7.6 Applicazioni delle basi di dati attive 258
7.6.1 Gestione dell’integrita' referenziale 259
7.6.2 Regole aziendali 261
8 Basi di dati per il supporto alle decisioni 265
8.1 Architettura di un data warehouse 267
8.2 Rappresentazione multidimensionale dei dati 270
8.2.1 Il modello multidimensionale 271
8.2.2 Operazioni nel modello multidimensionale 272
8.3 Realizzazione di un data warehouse 274
8.3.1 Rappresentazione relazionale di un data warehouse 276
8.3.2 Operazioni su data mart relazionali 277
8.3.3 Indici bitmap e indici di join 281
8.3.4 Materializzazione delle viste 282
8.4 Progettazione di un data warehouse 283
8.5 Data mining 289
8.5.1 Il processo di data mining 289
8.5.2 Problemi di data mining 290
Bibliografia 297
Indice analitico 303 |