| Indice
Prefazione XIII
Capitolo 1 Database 1
1.1 Cos’e' un database 1
1.2 Dagli archivi ai DBMS 3
1.3 Vantaggi offerti dai DBMS 4
1.3.1 Indipendenza dei dati dall’applicazione 4
1.3.2 Riservatezza nell’accesso ai dati 5
1.3.3 Gestione dell’integrita' fisica dei dati 5
1.3.4 Gestione dell’integrita' logica dei dati 6
1.3.5 Sicurezza e ottimizzazione nell’uso dei dati 6
1.4 Modelli dei dati 6
1.5 Progettazione concettuale 7
1.5.1 Esempio di schema concettuale 10
1.5.2 Astrazione 12
1.6 Progettazione logica 15
1.7 Progettazione fisica 15
1.8 Modalita' d’uso dei DBMS 15
1.9 DBMS non relazionali 16
Capitolo 2 Database relazionali 19
2.1 RDBMS 19
2.2 Modello relazionale 20
2.2.1 Relazione 1:1 21
2.2.2 Relazione 1:N 22
2.2.3 Relazione N:N 23
2.3 Esempio di schema logico del database
Registro_Automobilistico 24
2.4 Normalizzazione 27
2.4.1 Prima forma normale 27
2.4.2 Seconda forma normale 27
2.4.3 Terza forma normale 28
2.5 Progettazione relazionale 29
2.6 Evoluzione dell’SQL 30
2.7 Caratteristiche del linguaggio 31
2.8 Importanza dello standard 32
2.9 Formato dei comandi 33
Capitolo 3 Algebra relazionale 35
3.1 Operatori dell’algebra relazionale 35
3.2 Operatori di base 36
3.3 Operatori derivati 39
3.4 Altri operatori 43
Capitolo 4 Caso di studio – Parte I 47
4.1 Presentazione del caso di studio 47
4.2 Schema concettuale 48
4.3 Schema logico 50
4.4 Contenuto del database 52
Capitolo 5 Query 57
5.1 Interrogazione del database 57
5.2 Lista di selezione 58
5.3 Clausola WHERE 63
5.3.1 Operatori di confronto 64
5.3.2 Connettori logici 65
5.3.3 BETWEEN 68
5.3.4 IN 69
5.3.5 LIKE 70
5.3.6 IS NULL 71
5.4 Calcolo di espressioni 72
5.5 Funzioni di gruppo 74
5.5.1 MAX e MIN 74
5.5.2 SUM 75
5.5.3 AVG 76
5.5.4 COUNT 77
5.6 Clausola GROUP BY 78
5.7 Clausola HAVING 80
5.8 Clausola di ordinamento 82
Capitolo 6 Join 85
6.1 Join su due tabelle 85
6.2 Natural join 86
6.3 Inner-join 89
6.4 Outer-join 92
6.5 Cross-join 95
6.6 Join su piu' di due tabelle 95
6.7 Self-join 99
Capitolo 7 Operatori su insiemi 103
7.1 Introduzione 103
7.2 UNION 104
7.3 EXCEPT 106
7.4 INTERSECT 107
Capitolo 8 Subquery 109
8.1 Introduzione 109
8.2 Tipi di subquery 110
8.3 Subquery in espressioni di confronto 111
8.4 Subquery in espressioni di confronto quantificato 114
8.5 Subquery in espressioni IN 117
8.6 Subquery in espressioni EXISTS 118
8.7 Subquery nel calcolo di espressioni 120
8.8 Subquery annidate 122
Capitolo 9 Inserimento, modifica e cancellazione dei dati 125
9.1 Introduzione 125
9.2 INSERT 126
9.3 UPDATE 130
9.4 DELETE 134
Capitolo 10 Definizione del database 137
10.1 Introduzione 137
10.2 Creazione dello schema 138
10.3 Creazione delle tabelle 140
10.4 Definizione delle colonne 141
10.5 Tipi di dato 141
10.5.1 CHARACTER 142
10.5.2 Tipi numerici esatti 143
10.5.3 Tipi numerici approssimati 145
10.5.4 DATE 146
10.6 Vincoli di integrita' 147
10.6.1 Vincolo NOT NULL 148
10.6.2 Vincoli di unicita' 149
10.6.3 Vincolo di chiave esterna 150
10.6.4 Vincolo di controllo 153
10.6.5 Asserzioni 154
10.7 Domini 155
10.8 Comandi di eliminazione 157
10.8.1 DROP SCHEMA 157
10.8.2 DROP DOMAIN 157
10.8.3 DROP TABLE 158
10.8.4 DROP ASSERTION 159
10.9 Comandi di modifica 159
10.9.1 ALTER DOMAIN 159
10.9.2 ALTER TABLE 160
10.10 Gestione degli indici 162
Capitolo 11 Viste 165
11.1 Introduzione 165
11.2 Creazione delle viste 166
11.3 Eliminazione delle viste 171
11.4 Selezione dei dati tramite viste 172
11.5 Aggiornamento dei dati tramite viste 173
11.6 Vantaggi delle viste 174
11.6.1 Facilitazione nell’accesso ai dati 175
11.6.2 Diverse visioni dei dati 176
11.6.3 Indipendenza logica 176
Capitolo 12 Caso di studio – Parte II 181
12.1 Introduzione 181
12.2 Interrogazioni su una tabella 181
12.3 Interrogazioni su piu' tabelle 195
12.4 Interrogazioni tramite gli operatori su insiemi 199
12.5 Subquery 201
12.6 Inserimento, modifica e cancellazione dei dati 210
12.7 Definizione della base di dati 215
12.8 Viste 219
Capitolo 13 Transazioni 223
13.1 Introduzione 223
13.2 Integrita' dei dati in caso di malfunzionamenti 223
13.3 Integrita' dei dati in caso di accesso concorrente 225
13.4 Comandi COMMIT e ROLLBACK 226
13.5 Comando SET TRANSACTION 227
13.6 Operazioni di diagnostica 228
Capitolo 14 Sicurezza 229
14.1 Introduzione 229
14.2 Uso delle viste per la sicurezza dei dati 230
14.3 Privilegi 232
14.4 GRANT 234
14.5 REVOKE 236
Capitolo 15 DBMS in rete 239
15.1 Database distribuiti 239
15.2 Two phase commit 240
15.3 Replicazione 241
15.4 Data mining 243
15.5 Evoluzione dei DBMS 244
15.6 Logica di accesso ai dati 246
15.7 Diffusione dei DBMS e di SQL 251
Capitolo 16 SQL e Web 253
16.1 Introduzione 253
16.2 Programmazione server-side 255
16.2.1 PHP 256
16.2.2 ASP 259
16.2.3 JSP 261
16.3 Programmazione client-side 261
16.4 Java 262
16.4.1 JDBC 262
16.4.2 Servlet 263
16.5 XML 267
16.6 Integrazione database relazionali e XML 269
16.7 Web Service 274
16.8 Dot Net 274
Capitolo 17 SQL3: estensioni ai tipi di dato 275
17.1 Introduzione 275
17.2 Caratteristiche relazionali 276
17.3 Nuovi tipi di dato 276
17.3.1 LOB 276
17.3.2 BOOLEAN 277
17.3.3 ARRAY 277
17.3.4 ROW 277
17.4 Tipi di dato distinti 278
17.5 Nuovi predicati 279
17.6 Paradigma a oggetti 279
17.6.1 Dati e funzioni 280
17.6.2 Classi e oggetti 284
17.6.3 Incapsulamento 286
17.6.4 Ereditarieta' 286
17.6.5 Polimorfismo 289
17.7 Caratteristiche a oggetti 290
17.7.1 Tipi definiti dall’utente 290
17.7.2 Metodi 293
17.7.3 Oggetti 295
Capitolo 18 SQL3: nuove caratteristiche del linguaggio 297
18.1 Introduzione 297
18.2 Viste aggiornabili 298
18.3 Ricorsione 299
18.4 Savepoint 301
18.5 Ruoli 301
18.6 Estensioni procedurali 302
18.6.1 Comando composto 302
18.6.2 Comandi per la gestione di variabili 303
18.6.3 Comandi condizionali 304
18.6.4 Comando di uscita 304
18.6.5 Comandi iterativi 305
18.7 Trigger 306
18.7.1 Vincoli di integrita' di dominio e referenziali 306
18.7.2 La tecnica dei trigger 308
18.8 Evoluzione dello standard 312
Capitolo 19 L’implementazione a oggetti di Oracle 317
19.1 Introduzione 317
19.2 Tipi di dato astratti 318
19.3 Metodi 320
19.4 Viste oggetto 321
19.5 Array a lunghezza variabile 323
19.6 Tabelle annidate 325
19.7 Oggetti riga e tabelle oggetto 329
19.8 Viste oggetto e oggetti riga 332
19.9 Large object 335
Capitolo 20 Trigger e stored procedure nell’implementazione di Sybase 339
20.1 Introduzione 339
20.2 Transact-SQL di Sybase 340
20.3 Trigger 349
20.4 Trigger per la gestione dell’integrita' referenziale 350
20.5 Trigger per la gestione dell’integrita' di dominio 354
20.6 Trigger per la gestione dell’integrita' di comportamento 356
20.7 Stored procedure 358
20.7.1 Stored procedure per motivi di efficienza 358
20.7.2 Stored procedure per incapsulare i dati 360
20.8 Embedded SQL 360
Appendice A Contenuto del database
Registro_Automobilistico 365
Appendice B Definizione del database
MOBILI_COMPONIBILI 369
B.1 SQL ANSI 369
B.2 SQL ANSI forma minimale 371
Appendice C Parole riservate di SQL99 373
Soluzioni degli esercizi 377
Bibliografia 387
Nota sull’uso del CD-ROM 389
Indice analitico 395 |