|
|
CONSIGLIATO DA LIBRINFORMATICA
Basi di dati - Architetture e linee di evoluzione - seconda edizione
|
| Editore | Mc Graw Hill |
| Autore | Paolo Atzeni ; Stefano Ceri ; Piero Fraternali ; Stefano Paraboschi ; Riccardo Torlone |
| Collana | Istruzione scientifica |
| Pagine | 337 |
| Volumi | 1 |
| Livello | Introduttivo |
| Lingua | Italiano |
| Data pubblicazione | 06 - 2007 |
| ISBN | 8838663703 |
|
|
| Prezzo di copertina |
| Euro 31,00 |
|
Prefazione
Parte I Tecnologia delle basi di dati
1) Organizzazione fisica e gestione delle interrogazioni
2) Gestione delle transazioni
Parte II Evoluzione delle basi di dati
3) Basi di dati a oggetti
4) Basi di dati per XML
5) Basi di dati attive
Parte III Architetture per basi di dati
6) Architetture distribuite
7) Architetture dei sistemi informativi su Web
8) Architetture per l’analisi dei dati
Bibliografia
Indice analitico
Indice
Prefazione xi
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 . . . . . . . . . . . . . . . . . . . . . 6
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 (hash) . . . . . . . . . . . 13
1.4 Strutture ad albero . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4.1 Indici primari e secondari . . . . . . . . . . . . . . . . . 18
1.4.2 Strutture ad albero dinamiche . . . . . . . . . . . . . . . 20
1.5 Strutture fisiche e indici nei DBMS relazionali . . . . . . . . . . . 26
1.6 Gestore delle interrogazioni: esecuzione e ottimizzazione . . . . . 28
1.6.1 Profili delle relazioni . . . . . . . . . . . . . . . . . . . . 30
1.6.2 Rappresentazione interna delle interrogazioni . . . . . . . 31
1.6.3 Ottimizzazione basata sui costi . . . . . . . . . . . . . . . 35
1.7 Progettazione fisica di una base di dati . . . . . . . . . . . . . . . 37
Note bibliografiche . . . . . . . . . . . . . . . . . . . . . . . . . 39
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2 Gestione delle transazioni 45
2.1 Le transazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.1 Specifica delle transazioni: commit e rollback . . . . . . . 45
2.1.2 Propriet`a “acide” delle transazioni . . . . . . . . . . . . . 47
2.1.3 Transazioni e moduli di sistema . . . . . . . . . . . . . . 48
2.2 Controllo di affidabilit`a . . . . . . . . . . . . . . . . . . . . . . . 50
2.2.1 Architettura del controllore della affidabilit `a . . . . . . . . 50
2.2.2 Organizzazione del log . . . . . . . . . . . . . . . . . . . 51
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 . . . . . . . . . . . . 80
Note bibliografiche . . . . . . . . . . . . . . . . . . . . . . . . . 81
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Parte II Evoluzione delle basi di dati 85
3 Basi di dati a oggetti 87
3.1 Basi di dati a oggetti . . . . . . . . . . . . . . . . . . . . . . . . 88
3.1.1 Tipi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.1.2 Classi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.1.3 Metodi . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.1.4 Gerarchie di generalizzazione . . . . . . . . . . . . . . . 99
3.1.5 Persistenza . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.1.6 Ridefinizione dei metodi . . . . . . . . . . . . . . . . . . 103
3.1.7 Ridefinizione con raffinamenti di tipo . . . . . . . . . . . 105
3.1.8 Il manifesto delle basi di dati a oggetti . . . . . . . . . . . 107
3.2 Standard ODMG per le basi di dati a oggetti . . . . . . . . . . . . 108
3.2.1 Linguaggio di definizione degli oggetti: ODL . . . . . . . 108
3.2.2 Linguaggio di interrogazione: OQL . . . . . . . . . . . . 110
3.3 Basi di dati relazionali a oggetti . . . . . . . . . . . . . . . . . . 114
3.3.1 Modello dei dati di SQL-3 . . . . . . . . . . . . . . . . . 115
3.3.2 Linguaggio di interrogazione di SQL-3 . . . . . . . . . . 120
3.3.3 Il manifesto delle basi di dati della terza generazione . . . 121
3.4 Basi di dati multimediali . . . . . . . . . . . . . . . . . . . . . . 122
3.4.1 Tipi di dati multimediali . . . . . . . . . . . . . . . . . . 122
3.4.2 Interrogazioni su dati multimediali . . . . . . . . . . . . . 124
3.4.3 Ricerca di documenti . . . . . . . . . . . . . . . . . . . . 124
3.4.4 Rappresentazione dei dati spaziali . . . . . . . . . . . . . 126
3.5 Estensioni tecnologiche per le basi di dati a oggetti . . . . . . . . 128
3.5.1 Rappresentazione dei dati e degli identificatori . . . . . . 128
3.5.2 Indici complessi . . . . . . . . . . . . . . . . . . . . . . 130
3.5.3 Architettura client-server . . . . . . . . . . . . . . . . . . 131
3.5.4 Transazioni . . . . . . . . . . . . . . . . . . . . . . . . . 131
3.5.5 Mapping da oggetti a sistemi relazionali in EJB . . . . . . 132
Note bibliografiche . . . . . . . . . . . . . . . . . . . . . . . . . 137
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
4 Basi di dati per XML 143
4.1 HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.2 Definizione di dati semistrutturati in XML . . . . . . . . . . . . . 147
4.3 Interrogazione di dati XML . . . . . . . . . . . . . . . . . . . . . 151
4.3.1 XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
4.3.2 XSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
4.3.3 XQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.4 Gestione di dati XML con DBMS relazionali . . . . . . . . . . . 163
4.5 Le basi di dati XML native . . . . . . . . . . . . . . . . . . . . . 166
Note bibliografiche . . . . . . . . . . . . . . . . . . . . . . . . . 168
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5 Basi di dati attive 173
5.1 Caratteristiche generali dei trigger . . . . . . . . . . . . . . . . . 174
5.2 Definizione e uso dei trigger in SQL-3 . . . . . . . . . . . . . . . 175
5.2.1 Sintassi dei trigger . . . . . . . . . . . . . . . . . . . . . 175
5.2.2 Comportamento dei trigger . . . . . . . . . . . . . . . . . 177
5.3 Definizione e uso dei trigger in DB2 . . . . . . . . . . . . . . . . 178
5.4 Definizione e uso dei trigger in Oracle . . . . . . . . . . . . . . . 180
5.4.1 Sintassi dei trigger . . . . . . . . . . . . . . . . . . . . . 180
5.4.2 Comportamento dei trigger . . . . . . . . . . . . . . . . . 181
5.4.3 Esempio di esecuzione . . . . . . . . . . . . . . . . . . . 181
5.5 Caratteristiche evolute delle regole attive . . . . . . . . . . . . . . 183
5.6 Propriet`a delle regole attive . . . . . . . . . . . . . . . . . . . . . 184
5.7 Applicazioni delle basi di dati attive . . . . . . . . . . . . . . . . 186
5.7.1 Gestione dell’integrit`a referenziale . . . . . . . . . . . . . 186
5.7.2 Regole aziendali . . . . . . . . . . . . . . . . . . . . . . 189
5.8 Sistemi per la gestione di stream di dati . . . . . . . . . . . . . . 190
Note bibliografiche . . . . . . . . . . . . . . . . . . . . . . . . . 192
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Parte III Architetture per basi di dati 195
6 Architetture distribuite 197
6.1 Architettura client-server . . . . . . . . . . . . . . . . . . . . . . 199
6.2 Basi di dati distribuite . . . . . . . . . . . . . . . . . . . . . . . . 202
6.2.1 Applicazioni delle basi di dati distribuite . . . . . . . . . 202
6.2.2 Autonomia locale e cooperazione . . . . . . . . . . . . . 203
6.2.3 Frammentazione e allocazione dei dati . . . . . . . . . . . 204
6.2.4 Livelli di trasparenza . . . . . . . . . . . . . . . . . . . . 207
6.2.5 Classificazione delle transazioni . . . . . . . . . . . . . . 209
6.3 Tecnologia delle basi di dati distribuite . . . . . . . . . . . . . . . 210
6.3.1 Ottimizzazione di interrogazioni distribuite . . . . . . . . 211
6.3.2 Controllo di concorrenza . . . . . . . . . . . . . . . . . . 212
6.3.3 Atomicit`a di transazioni distribuite . . . . . . . . . . . . . 217
6.4 Protocollo di commit a due fasi . . . . . . . . . . . . . . . . . . . 217
6.4.1 Nuovi record nel log . . . . . . . . . . . . . . . . . . . . 218
6.4.2 Protocollo in assenza di guasti . . . . . . . . . . . . . . . 218
6.4.3 Protocolli di ripristino . . . . . . . . . . . . . . . . . . . 221
6.4.4 Ottimizzazioni del commit a due fasi . . . . . . . . . . . 223
6.4.5 Altri protocolli di commit . . . . . . . . . . . . . . . . . 224
6.4.6 Interoperabilit`a del commit a due fasi: X-Open DTP . . . 226
6.5 Parallelismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
6.5.1 Parallelismo inter-query e intra-query . . . . . . . . . . . 229
6.5.2 Parallelismo e frammentazione dei dati . . . . . . . . . . 230
6.5.3 Speed-up e scale-up . . . . . . . . . . . . . . . . . . . . 231
6.5.4 Benchmark delle transazioni . . . . . . . . . . . . . . . . 232
6.6 Basi di dati replicate . . . . . . . . . . . . . . . . . . . . . . . . 233
6.6.1 Nuove funzionalit`a dei gestori della replicazione . . . . . 235
6.7 Cooperazione di basi di dati eterogenee e autonome . . . . . . . . 236
Note bibliografiche . . . . . . . . . . . . . . . . . . . . . . . . . 239
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
7 Architetture dei sistemi informativi su Web 243
7.1 Tecnologie di base . . . . . . . . . . . . . . . . . . . . . . . . . 244
7.1.1 Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
7.1.2 Il World Wide Web . . . . . . . . . . . . . . . . . . . . . 245
7.1.3 Il protocollo HTTP . . . . . . . . . . . . . . . . . . . . . 247
7.2 Architetture a tre livelli . . . . . . . . . . . . . . . . . . . . . . . 250
7.2.1 Common Gateway Interface . . . . . . . . . . . . . . . . 250
7.2.2 L’architettura Java Servlet . . . . . . . . . . . . . . . . . 252
7.2.3 Template di pagina e Server Side Scripting . . . . . . . . 256
7.2.4 Model-View-Controller . . . . . . . . . . . . . . . . . . . 259
7.3 Architetture multi-livello . . . . . . . . . . . . . . . . . . . . . . 262
7.3.1 Il concetto di application server . . . . . . . . . . . . . . 263
7.3.2 Enterprise Java Beans . . . . . . . . . . . . . . . . . . . 264
7.4 Architetture a servizi . . . . . . . . . . . . . . . . . . . . . . . . 267
7.4.1 Il concetto di Web Service . . . . . . . . . . . . . . . . . 267
7.4.2 Il protocollo SOAP . . . . . . . . . . . . . . . . . . . . . 269
7.4.3 Il linguaggio WSDL . . . . . . . . . . . . . . . . . . . . 270
7.4.4 Un confronto tra EJB e Web Service . . . . . . . . . . . . 272
7.5 Progettazione delle applicazioni Web . . . . . . . . . . . . . . . . 272
7.5.1 Analisi dei requisiti . . . . . . . . . . . . . . . . . . . . . 273
7.5.2 Progettazione concettuale della base di dati . . . . . . . . 277
7.5.3 Progettazione dell’ipertesto . . . . . . . . . . . . . . . . 278
7.5.4 Realizzazione dell’applicazione . . . . . . . . . . . . . . 283
Note bibliografiche . . . . . . . . . . . . . . . . . . . . . . . . . 285
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
8 Architetture per l’analisi dei dati 289
8.1 Architettura di un data warehouse . . . . . . . . . . . . . . . . . 291
8.2 Rappresentazione multidimensionale dei dati . . . . . . . . . . . 295
8.2.1 Il modello multidimensionale . . . . . . . . . . . . . . . 295
8.2.2 Operazioni nel modello multidimensionale . . . . . . . . 297
8.3 Realizzazione di un data warehouse . . . . . . . . . . . . . . . . 299
8.3.1 Rappresentazione relazionale di un data warehouse . . . . 301
8.3.2 Operazioni su data mart relazionali . . . . . . . . . . . . 304
8.3.3 Indici bitmap e indici di join . . . . . . . . . . . . . . . . 306
8.3.4 Materializzazione delle viste . . . . . . . . . . . . . . . . 307
8.4 Progettazione di un data warehouse . . . . . . . . . . . . . . . . 308
8.5 Data mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
8.5.1 Il processo di data mining . . . . . . . . . . . . . . . . . 315
8.5.2 Problemi di data mining . . . . . . . . . . . . . . . . . . 316
Note bibliografiche . . . . . . . . . . . . . . . . . . . . . . . . . 320
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Bibliografia 325
Indice analitico 331
|
|
|
|