Indice
Introduzione
Scopi del libro
Lavorare con il database di esempio
Organizzazione del libro
Convenzioni utilizzate in questo libro
PARTE PRIMA
00_SQL_Beginner_indice.indd V
XVII
XVII
XVIII
XIX
XXIII
SQL Server: Concetti di base
1
Capitolo 1
Sistemi di database e SQL Server
1.1
Sistemi di database: panoramica
Vasto assortimento di interfacce utente
Indipendenza fisica dei dati
Indipendenza logica dei dati
Ottimizzazione delle query
Integrità dei dati
Controllo della concordanza
Backup e recupero
Sicurezza e autorizzazioni
1.2
Sistemi di database relazionali
Lavorare con il database di esempio del libro
1.3
SQL: un linguaggio di database relazionale
Convenzioni per la sintassi
1.4
Progetto di database
Forme normali
Il modello Entità-Relazione (ER)
1.5
Conclusione
1.6
Panoramica di Microsoft SQL Server
1.7
Esercizi
3
5
6
6
6
6
7
7
7
8
8
8
11
12
13
14
16
17
18
19
Capitolo 2
SQL Server Management Studio
21
2.1
Il gruppo di programmi SQL Server
e Books Online
21
2.2
Introduzione a SQL Server Management Studio 22
11/02/2006 12.00.41
VI
INDICE
2.3
2.4
PARTE SECONDA
00_SQL_Beginner_indice.indd VI
Utilizzare Management Studio con il
Database Engine di SQL Server
Gestire i database utilizzando Object Explorer
Sviluppare le attività utilizzando SQL Server
Management Studio
Conclusione
Esercizi
Linguaggio Transact-SQL
25
29
35
40
40
43
Capitolo 3
Componenti di SQL
3.1
Oggetti di base di SQL
Commenti
Identificatori
Parole chiave riservate
3.2
Tipi di dati
Tipi di dati numerici
Tipi di dati stringa
Specificare data e ora
Tipi di dati derivati
Tipi di dati vari
Tipi di dati definiti dall’utente
3.3
Predicati
3.4
Funzioni aggregate
3.5
Funzioni scalari
Funzioni numeriche
Funzioni di data
Funzioni di stringa
Funzioni di testo/immagine
Funzioni di sistema
3.6
Operatori scalari
Variabili globali
3.7
Valori Null
3.8
Conclusione
3.9
Esercizi
45
45
47
47
48
48
48
49
51
52
52
53
54
54
55
55
56
57
58
59
61
61
62
64
64
Capitolo 4
Linguaggio di definizione dei dati
4.1
Creare gli oggetti del database
Creazione di un database
CREATE TABLE: la forma base
CREATE TABLE: la forma migliorata
CREATE TABLE e i vincoli di integrità
dichiarativa
Vincoli referenziali
Creare altri oggetti del database
Vincoli di integrità e domini
4.2
Modificare gli oggetti del database
Alterare un database
67
67
68
71
72
73
78
82
84
88
89
11/02/2006 12.00.42
INDICE
Alterare una tabella: la forma base
Alterare una tabella: la forma migliorata
Eliminare gli oggetti del database
Conclusione
Esercizi
90
91
94
95
95
Capitolo 5
Query semplici
5.1
Dichiarazione SELECT: una forma base
5.2
La clausola WHERE
Operatori booleani
Operatori IN e BETWEEN
Query che utilizzano valori null
Operatore LIKE
5.3
Sotto query semplici
Sotto query e operatori di confronto
Sotto query e operatore IN
Operatori ANY e ALL
Funzione EXISTS
Query nella clausola FROM
5.4
Clausola GROUP BY
5.5
Funzioni aggregate
Aggregati pratici
Aggregati statistici
Superaggregati (operatori CUBE e ROLLUP)
Funzioni aggregate definite dall’utente
5.6
Clausola HAVING
5.7
Clausola ORDER BY
5.8
Dichiarazione SELECT e proprietà IDENTITY
5.9
Operatori di set
5.10 Espressioni CASE
5.11 Clausola COMPUTE
5.12 Tabelle temporanee
5.13 Colonne calcolate
5.14 Conclusione
5.15 Esercizi
99
99
101
104
107
110
112
116
116
118
119
121
121
122
124
124
129
130
130
131
132
134
135
140
141
144
145
146
146
Capitolo 6
Query complesse
6.1
Operatore di unione
Due forme sintattiche per implementare i join
Equijoin
Prodotto cartesiano
Join naturale
Thetajoin
Unire più di due tabelle
Unire una tabella a sé stessa
Join esterno
6.2
Sotto query correlate
Funzione EXISTS e sotto query
6.3
Meglio utilizzare i join o le sotto query?
4.3
4.4
4.5
00_SQL_Beginner_indice.indd VII
VII
149
149
150
151
154
155
157
158
160
161
164
166
169
11/02/2006 12.00.42
VIII
INDICE
6.4
6.5
6.6
00_SQL_Beginner_indice.indd VIII
Vantaggi delle sotto query
Vantaggi delle unioni
Common Table Expressions
CTE e query non ricorsive
CTE e query ricorsive
Conclusione
Esercizi
170
170
171
171
173
177
178
Capitolo 7
Modifica dei contenuti di una tabella
7.1
Dichiarazione INSERT
Inserire una singola riga
Inserire più righe
7.2
Dichiarazione UPDATE
7.3
Dichiarazione DELETE
7.4
Conclusione
7.5
Esercizi
181
181
182
183
185
187
189
189
Capitolo 8
Stored procedure e funzioni definite
dall’utente
191
8.1
Estensioni SQL
191
Blocco di dichiarazioni
192
Dichiarazione IF
192
Dichiarazione WHILE
193
Variabili locali
194
Dichiarazioni procedurali varie
195
Gestire gli eventi con le dichiarazioni
TRY e CATCH
195
8.2
Stored procedure
198
Creazione ed esecuzione delle stored procedure 199
Stored procedure di sistema
202
Stored Procedure e CLR
203
8.3
Funzioni definite dall’utente
207
Creazione ed esecuzione delle funzioni
definite dall’utente
207
Funzioni definite dall’utente e CLR
211
8.4
Conclusione
213
8.5
Esercizi
213
Capitolo 9
Indici e ottimizzazione delle query
9.1
Indici
Indici raggruppati e non raggruppati
Indici e dichiarazioni Transact-SQL
corrispondenti
Modificare le informazioni degli indici
Indici e chiavi
Linee guida per la creazione di indici
9.2
Criteri generali per migliorare l’efficienza
Unioni e sotto query correlate a confronto
215
215
217
218
224
225
226
227
228
11/02/2006 12.00.43
INDICE
9.3
9.5
9.6
9.7
00_SQL_Beginner_indice.indd IX
Dichiarazioni incomplete
Operatore LIKE
Dichiarazioni Transact-SQL per
l’ottimizzazione delle query
Ottimizzatore di query
Statistiche dell’ottimizzatore
Implementare l’operazione di unione
Hint dell’ottimizzatore
Il comando DBCC e gli indici
Conclusione
Esercizi
IX
229
229
230
232
233
234
236
244
245
245
Capitolo 10
Viste
10.1 Dichiarazioni DDL e viste
Creare una vista
Alterare ed eliminare le viste
10.2 Dichiarazioni DML e viste
Recupero delle viste
La dichiarazione INSERT e una vista
La dichiarazione UPDATE e una vista
La dichiarazione DELETE e una vista
10.3 Viste indicizzate
Creare una vista indicizzata
Vantaggi delle viste indicizzate
Utilizzare le viste indicizzate
10.4 Conclusione
10.5 Esercizi
247
247
248
252
253
253
254
256
258
259
260
262
263
265
265
Capitolo 11
Catalogo di sistema
11.1 Tabelle di sistema
Sysobjects
Syscolumns
Sysindexes
Sysusers
Sysdatabases
Sysdepends
Sysconstraints
11.2 Viste di catalogo
Sys_objects
Sys.database_principals
11.3 Interrogare le viste di catalogo
11.4 Altri modi per accedere alle informazioni
del sistema
System Procedure
unzioni di sistema
Funzioni di proprietà
Information schema
11.5 Conclusione
11.6 Esercizi
267
267
268
268
269
269
269
269
270
270
271
272
272
274
274
276
277
278
280
281
11/02/2006 12.00.43
X
INDICE
Capitolo 12
00_SQL_Beginner_indice.indd X
Sicurezza di SQL Server
12.1 Autenticazione
Policy e meccanismi di cifratura di SQL Server
Impostare il livello di sicurezza di SQL Server
utilizzando il DDL
Impostare la sicurezza di SQL Server
utilizzando le system procedure
System procedure riguardanti i login
12.2 Schema
Divisione tra utente e schema
Dichiarazioni DDL riguardanti gli schemi
12.3 Sicurezza del database
Impostare l’account utente di database
con il DDL
Impostare gli account utente di database
utilizzando le system procedure
Schemi di database predefiniti
12.4 Ruoli
Ruoli di server fissi
Ruoli di server fissi e loro permessi
Ruoli di database fissi
Ruoli di database fissi e loro permessi
Ruoli dell’applicazione
Ruoli di database definiti dall’utente
12.5 Autorizzazione
Dichiarazione GRANT
Dichiarazione DENY
Dichiarazione REVOKE
12.6 Viste e accesso ai dati
12.7 Stored procedure e accesso ai dati
12.8 Conclusione
12.9 Esercizi
283
283
285
286
288
288
289
290
291
293
293
294
295
296
296
297
299
300
302
304
306
306
310
311
312
314
314
315
Capitolo 13
Trigger
317
13.1 Introduzione
317
13.2 Funzionamento dei trigger
318
Aree di applicazione dei trigger AFTER
320
Aree di applicazione dei trigger INSTEAD OF 322
Primo e ultimo trigger
324
Trigger DDL
325
13.3 Trigger e CLR
326
13.4 La clausola OUTPUT
329
13.5 Modificare la struttura del trigger
331
13.6 Conclusione
331
13.7 Esercizi
332
Capitolo 14
Transazioni
14.1 Introduzione
14.2 Dichiarazioni Transact-SQL e transazioni
333
333
335
11/02/2006 12.00.43
INDICE
14.3
14.4
14.5
14.6
14.7
Registro delle transazioni
Blocco
Granularità del blocco
Tipi di blocchi
La dichiarazione SELECT e i blocchi
Livelli di isolamento
Versioning di riga e livello di isolamento
snapshot
Deadlock
Conclusione
Esercizi
XI
337
338
338
339
342
343
345
347
348
348
Capitolo 15
Ambiente del sistema SQL Server
15.1 Memorizzazione su disco
Pagine di dati
Oggetti di grandi dimensioni
Pagine di indice
15.2 Database di sistema
15.3 Utility
Utility bcp
Utility osql
Utility sqlcmd
15.4 Istanze di SQL Server
15.5 Unicode
Codifica dei caratteri
15.6 Architettura di SQL Server
Architetture hardware multiprocessore
Architettura multithread di SQL Server
15.7 Conclusione
15.8 Esercizi
351
351
352
355
355
355
356
357
358
359
361
362
362
363
363
365
366
367
PARTE TERZA
SQL Server: amministrazione
del sistema
369
00_SQL_Beginner_indice.indd XI
Capitolo 16
Panoramica sull’amministrazione
del sistema
371
16.1 Strumenti di amministrazione
371
Il gruppo di programmi di MS SQL Server 2005 372
SQL Computer Manager
373
Viste di gestione dinamiche
374
16.2 Amministratore del sistema
374
16.3 Conclusione
375
Capitolo 17
Pianificazione e installazione
di SQL Server
17.1 Pianificazione dell’installazione
Scopo di SQL Server
377
377
377
11/02/2006 12.00.43
XII
INDICE
17.2
17.3
17.4
17.5
Capitolo 18
00_SQL_Beginner_indice.indd XII
Requisiti hardware e software
Edizioni di SQL Server
Consigli per l’installazione
Installazione di SQL Server
Inizio dell’installazione
Configurazione di SQL Server dopo
l’installazione
Creazione di gruppi di server e registrazione
del server
Impostazione delle opzioni del server
Avvio e fermata di un’istanza di SQL Server
Conclusione
Gestione di database e di file
di database
18.1 Gestione di filegroup
Visualizzazione di filegroup
18.2 Gestione di database
Creazione di database
Visualizzazione e modifica delle opzioni
di database
Modifica di database
18.3 Gestione di log di transazioni
18.4 Conclusione
18.5 Esercizi
378
379
380
381
381
386
387
388
389
389
391
391
392
393
393
395
397
399
400
400
Capitolo 19
Gestione della sicurezza
401
19.1 Introduzione
401
Implementazione di una modalità di sicurezza 402
Gestione di login di SQL Server
402
19.2 Permessi di sicurezza per i database
404
Ruoli
404
19.3 Gestione dei permessi
407
19.4 Conclusione
409
19.5 Esercizi
410
Capitolo 20
Backup e recupero
20.1 Introduzione
Errori software e hardware
Log di transazioni
20.2 Backup
Backup di database completo
Backup differenziale
Backup di log di transazioni
Backup di file di database
20.3 Effettuazione di backup
Backup mediante l’utilizzo di Management
Studio
411
411
411
412
413
413
413
414
415
416
416
11/02/2006 12.00.43
INDICE
20.4
20.5
20.6
Capitolo 21
Capitolo 22
00_SQL_Beginner_indice.indd XIII
Backup mediante l’utilizzo di dichiarazioni
Transact-SQL
Database per cui effettuare il backup
Riduzione del tempo di fermo del sistema
Alta disponibilità
Recupero
Recupero automatico
Recupero manuale
Modelli di recupero
Recupero da un contrassegno
Conclusione
Esercizi
Automazione dell’amministrazione
di sistema
21.1 Introduzione
21.2 SQL Server Agent
Esecuzione e configurazione di SQL
Server Agent
21.3 Creazione di processi e operatori
Passaggi per il processo
Creazione di un processo mediante l’utilizzo
di SQL Server Management Studio
Creazione di pianificazioni di processo
Creazione di operatori per la notifica
Visualizzazione del log storico dei processi
21.4 Allarmi
Messaggi di errore
Log di errori di SQL Server
Log di eventi
Definizione di allarmi per la gestione
di errori di SQL Server
Definizione di allarmi per la gestione
di errori definiti dall’utente
21.5 Conclusione
21.6 Esercizi
Prestazioni e ottimizzazione
22.1 Introduzione
22.2 Fattori che influiscono sulle prestazioni
Applicazioni di database e prestazioni
Server di database e prestazioni
Risorse di sistema e prestazioni
CPU
22.3 Strumenti di monitoraggio
Strumenti per le prestazioni di applicazioni
Monitoraggio specifico di SQL Server
Strumenti per il monitoraggio delle risorse
di sistema
XIII
419
421
423
426
427
428
428
436
439
439
440
441
441
442
443
443
444
445
446
448
449
451
451
452
452
453
455
457
458
459
459
460
460
462
463
464
468
469
473
475
11/02/2006 12.00.44
XIV
INDICE
22.4
22.5
Capitolo 23
Capitolo 24
PARTE QUARTA
Capitolo 25
00_SQL_Beginner_indice.indd XIV
Scelta dello strumento adatto
SQL Server Profiler
Database Engine Tuning Advisor
Conclusione
477
478
479
485
Partizionamento di dati
23.1 Introduzione
Metodi per il partizionamento di dati
23.2 Passaggi per la creazione di tabelle partizionate
Definizione degli obiettivi di partizionamento
Determinazione della chiave di partizione
e del numero di partizioni
Creazione di un filegroup per ciascuna
partizione
Creazione di funzione di partizione
e di schema di partizione
Collocazione di oggetti
23.3 Linee guida per il partizionamento di tabelle
e indici
23.4 Conclusione
487
488
488
489
489
Replicazione di dati
24.1 Dati distribuiti
Metodi per la distribuzione di dati
24.2 Replicazione di SQL Server: panoramica
Publisher, distributor e subscriber
Pubblicazioni e articoli
Tipi di replicazione
Modelli di replicazione
24.3 Gestione della replicazione
Configurazione dei server di distribuzione
e di pubblicazione
Impostazione delle pubblicazioni
Impostazione dei server di sottoscrizione
24.4 Conclusione
24.5 Esercizi
497
497
498
499
499
500
502
505
506
Microsoft Analysis Services
Data warehousing: introduzione
25.1 Elaborazione di transazioni online
e data warehousing
Elaborazione di transazioni online
Sistemi di data warehouse
25.2 Data warehouse e data mart
25.3 Progettazione di data warehouse
Modello dimensionale
490
490
491
494
495
495
506
508
509
510
511
513
515
515
516
517
518
520
520
11/02/2006 12.00.44
INDICE
25.4
25.5
25.6
25.7
25.8
Capitolo 26
523
524
525
526
527
528
528
Microsoft Analysis Services
26.1 BI Development Studio
26.2 Analysis Services e cubi
Creazione di un cubo
Progettazione dell’aggregazione
di memorizzazione ed elaborazione del cubo
Spostamento in un cubo
26.3 Conclusione
531
532
537
538
Capitolo 27
Business Intelligence ed SQL
27.1 Estensioni OLAP in Transact-SQL
Operatore CUBE
Operatore ROLLUP
Funzioni di classificazione
Clausola TOP n
Operatori PIVOT e UNPIVOT
27.2 Conclusione
545
545
546
549
550
555
557
558
Capitolo 28
Microsoft Reporting Services
28.1 Introduzione
Gestione report
Server report
Database di Server report
28.2 Creazione di report
Creazione guidata report
Report parametrizzati
28.3 Elaborazione e gestione di report
28.4 Accesso e recapito di report
Report a richiesta
Sottoscrizione a report
28.5 Conclusione
28.6 Esercizi
561
561
562
562
562
563
564
570
572
573
574
575
576
576
PARTE QUINTA
Capitolo 29
00_SQL_Beginner_indice.indd XV
Cubi e modalità di memorizzazione
MOLAP, ROLAP e HOLAP
Aggregazione
Quanto aggregare?
Accesso ai dati
Conclusione
Esercizi
XV
540
542
543
Supporto XML
577
Panoramica di XML
29.1 World Wide Web
29.2 XML e linguaggi relativi
579
579
580
11/02/2006 12.00.44
XVI
INDICE
29.3
29.4
Capitolo 30
00_SQL_Beginner_indice.indd XVI
XML: concetti fondamentali
Document Type Definition (DTD)
XML Schema
Conclusione
581
584
586
586
SQL Server 2005 e XML
30.1 Memorizzazione di XML in database relazionali
30.2 Il tipo di dati XML
Indicizzazione di una colonna XML
XML tipizzato e non tipizzato
30.3 Creazione di documenti XML mediante
l’utilizzo della clausola FOR XML
Modalità RAW
Modalità AUTO
Modalità EXPLICIT
Modalità PATH
Specifica di direttiva con modalità diverse
30.4 Linguaggi di query XML
30.5 Conclusione
589
589
591
593
594
Indice analitico
605
596
597
598
599
600
601
603
604
11/02/2006 12.00.44