SQL Server 2005

Werbung
Holger Schmeling
© 2008 AGI-Information Management Consultants
May be used for personal purporses only or by
libraries associated to dandelon.com network.
h
D
mit dem Microsoft
SQL Server 2005
HANSER
1
1.1
1.2
1.3
1.4
1.5
Einleitung
Was vermittelt dieses Buch?
Für wen ist dieses Buch?
Wo finde ich was?
Welche Voraussetzungen werden benötigt?
Danksagung
2 ,
2.1
SQL Server 2005-Architektur
SQL Server 2005-Komponenten
2.1.1
Das SQL Server-Datenbankmodul
2.1.2
SQL Server Replication Services
2.1.3
SQL Server Notification Services
2.1.4
SQL Server Reporting Services
2.1.5
SQL Server Analysis Services
2.1.6
SQL Server Integration Services
2.1.7
Verwaltungswerkzeuge
2.1.8
Entwicklungswerkzeuge
2.1.9
Der SQL Server Agent
SQL Server-Editionen
Systemdatenbanken
2.3.1
Die master-Datenbank
2.3.2
Die model-Datenbank
2.3.3
Die msdb-Datenbank
2.3.4
Die tempdb-Datenbank
2.3.5
Weitere Datenbanken
Die Struktur einer SQL Server-Datenbank
2.4.1
Datenbanken
2.4.2
Datenbankobjekte
.,
Zusammenfassung
2.2
2.3
2.4
2.5
1
1
2
3
5
6
:
,
9
9
10
12
12
12
13
13
14
14
14
15
16
16
16
17
17
17
18
19
19
21
Inhalt
3
SQL Server-Verwaltungswerkzeuge
23
3.1
3.2
3.3
SQL Server-Konfigurations-Manager
SQL Server-Oberflächenkonfiguration
SQL Server Management Studio
3.3.1
Start und Anmeldung
3.3.2
Bereiche des Hauptfensters
3.3.3
Datenbankprojekte erstellen
Business Intelligence Development Studio
SQL Server Profiler
Datenbankmodul-Optimierungsratgeber
Sqlcmd
SQL Server-Onlinedokumentation
Zusammenfassung
24
25
27
27
30
47
51
52
„.58
61
63
64
3.4
3.5
3.6
3.7
3.8
3.9
4
Transact SQL-Grundlagen
4.1
4.2
4.3
4.4
4.5
4.6
Das Relationenmodell
SQL mit System
T-SQL-Stapel (Batches)
SQL-Datentypen
,.
T-SQL-Ausdrücke und -Operatoren
Datenbanken verwalten
4.6.1
Datenbank erzeugen
„_..„..„,
4.6.2 Datenbankrändern
4.6.3
Datenbank löschen
Schemas verwenden
4.7.1
Namensauflösung
4.7.2
Synonyme
Tabellen entwerfen
4.8.1
Tabellen anlegen
4.8.2
Tabellen ändern
4.8.3 Identität/Primärschlüssel
4.8.4
Weitere Einschränkungen
4.8.5 Berechnete Spalten
4.8.6
Ein Wiedersehen mit CREATE TABLE
4.8.7
Beziehungen festlegen
;
4.8.8
Zusammenfassung zu Einschränkungen
4.8.9
Tabellen löschen
4.8.10 Datenbankdiagramme
4.8.11 Temporäre Tabellen
INSERT - Daten einfügen
SELECT - Daten abfragen
:
4.10.1 Filtern: Projektion und Selektion
Informationen ausgeben mit PRINT
Ausführen von gespeicherten Prozeduren
UPDATE - Daten ändern
DELETE - Daten löschen
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
,
65
-.
'.
66
67
69
71
76
79
79
82
84
84
87
89
90
90
93
95
98
102
103
104
107
107
108
109
110
111
115
122
122
123
125
4.15
4.16
4.17
4.18
4.19
4.20
4.21
4.22
SQL-Funktionen
4.15.1 Systemfunktionen
4.15.2 Konfigurationsfunktionen
4.15.3 Metadatenfunktionen
4.15.4 Numerische Funktionen
4.15.5 Funktionen zur Zeichenkettenbearbeitung
4.15.6 Konvertierungsfunktionen
4.15.7 Datums- und Zeitfunktionen
7
4.15.8 Sonstige Funktionen und Operatoren
Die Beispieldatenbank AdventureWorks
Sichten
4.17.1 Ändern von Sichten
4.17.2 Aktualisierung von Daten
Daten einfügen mit SELECT
4.18.1 1NSERT und SELECT
4.18.2 SELECT 1NTO
Null
4.19.1 Dreiwertige Logik
4.19.2 Arithmetische Operationen
4.19.3 Operationen mit Zeichenketten
4.19.4 Hinweise für die Verwendung von NULL
4.19.5 Spezielle Funktionen für NULL-Werte
Fehlerbehandlung in T-SQL
Komplexe Abfragen mit SELECT
4.21.1 Mengenoperationen mit SQL
4.21.2 Abfragen über mehrere Tabellen
4.21.3 Aggregatfunktionen und GROUP BY
4.21.4 Rangfolgefunktionen
4.21.5 Korrelierende Unterabfragen
4.21.6 Abgeleitete Tabellen
,
4.21.7 Allgemeine Tabellenausdrücke
4.21.8 PIVOT und UNPIVOT
4.21.9 OUTPUT
4.21.10 APPLY
Zusammenfassung
~
'.
'.
126
127
129
130
132
136
142
144
149
153
154
156
156
158
158
158
159
160
163
164
166
167
169
170
170
172
179
186
191
192
193
198
202
203
205
5
Transaktionen und Sperren
207
5.1
5.2
Eigenschaften von Transaktionen
Start und Ende einer Transaktion
5.2.1
Transaktionsmodi des SQL Servers
Sperren
;
5.3.1
Sperrbare Ressourcen
5.3.2
Sperrtypen
r
5.3.3
Deadlocks./
Isolationsstufen
5.4.1
READ UNCOMMITTED
:
207
210
211
213
214
217
219
224
224
5.3
5.4
.-
Inhalt
5.5
5.6
5.7
5.8
6
6.1
6.2
6.3
6.4
6.5
7
7.1
7.2
7.3
5.4.2
READ COMMITTED
5.4.3
REPEATABLE READ
5.4.4
SNAPSHOT
5.4.5
SERIALIZABLE
5.4.6
Abschließende Betrachtungen zu Isolationsstufen
Sperren explizit anfordern - Sperrhinweise
Das Transaktionsprotokoll
5.6.1
Abschneiden des Protokolls
5.6.2
Verhalten im Fehlerfall
Hinweise zur Verwendung von Transaktionen
Zusammenfassung
225
226
227
228
228
229
232
233
234
234
236
Administration für Datenbankentwickler
Datensicherung und -Wiederherstellung
6.1.1
Wiederherstellungsmodelle
6.1.2
Prüfen der Konsistenz einer Datenbank
6.1.3
Vollständige Datenbanksicherung
6.1.4
Sicherung des Transaktionsprotokolls
6.1.5
Sichern der Systemdatenbanken
Wiederherstellung von Datenbanken
6.2.1
Automatische Wiederherstellung bei Systemstart
6.2.2
Wiederherstellung der Systemdatenbanken
.\
Zugriffskontrolle ...-.r.:
6.3.1
SQL Server-Anmeldungen
6.3.2
Anmeldungen hinzufügen
6.3.3
Anmeldungen löschen
6.3.4
Berechtigungen vergeben
6.3.5
Vordefinierte Anmeldekonten
6.3.6
Datenbankbenutzer
6.3.7
Datenbankrollen
6.3.8
Rechte erteilen und entziehen
Überwachung von SQL Server
6.4.1
Was kann überwacht werden?
6.4.2
Überwachung mit dem SQL Server Management Studio
6.4.3
Überwachung mit dem SQL Server Profiler
6.4.4
Überwachung mit dem Windows-Systemmonitor
6.4.5
Verwendung von T-SQL zur Überwachung
Zusammenfassung
237
237
240
242
242
248
251
252
255
255
256
257
259
261
261
262
263
265
266
270
271 .
272
276
276
277
286
T-SQL-Programmierung
Variablen
7.1.1
Deklaration von Variablen
7.1.2
Wertzuweisung an Variablen
7.1.3
Besondere Variablentypen
Dynamisches SQL
Ablaufsteuerung
.'
:
287
287
287
288
290
292
293
7.4
7.5
7.6
7.7
7.8
8
8.1
8.2
8.3
8.4
7.3.1
Anweisungsblöcke
7.3.2
Bedingte Ausführung von Anweisungen
7.3.3
Wiederholte Ausführung von Anweisungen
Cursor
7.4.1
Cursor erzeugen
7.4.2
Einen Cursor durchlaufen - Daten abrufen
7.4.3
Daten aktualisieren
7.4.4
Hinweise zur Verwendung von Cursorn."
Gespeicherte Prozeduren
7.5.1
Warum gespeicherte Prozeduren?
7.5.2
Erstellung von gespeicherten Prozeduren
7.5.3
Verwenden von Parametern
7.5.4
Der Rückgabewert einer gespeicherten Prozedur
7.5.5
Die gespeicherte Systemprozedur sp_procoption
7.5.6
EXECUTE und INSERT
7.5.7
Erweitertes Beispiel: PDF-Dateien einlesen
Benutzerdefinierte Funktionen
7.6.1
Skalarwertfunktionen
7.6.2
Tabellenwertfunktionen
Trigger
~
7.7.1
DML-Trigger
7.7.2
Hinweise zur Verwendung von Triggern
7.7.3
DDL-frigger
Zusammenfassung
XML-Integration
Tabellen im XML-Format darstellen: FOR XML
8.1.1
FORXMLRAW
8.1.2
FOR XML AUTO
8.1.3
FOR XML EXPLICIT
8.1.4
FORXMLPATH
8.1.5
FOR XML-Optionen
8.1.6
Noch einmal FOR XML PATH
XML-Daten in Tabellenform abbilden: OPENXML
Der XML-Datentyp
8.3.1
Ungetypte XML-Daten
8.3.2
Getypte XML-Daten
8.3.3
query
8.3.4
exist
8.3.5
value
8.3.6
nodes
'.
8.3.7
modify
8.3.8
XML-Indizes
:
Zusammenfassung
....„
.'.
,
=
293
293
294
297
297
300
305
306
306
307
307
311
314
314
316
317
320
320
323
325
326
332
333
338
339
339
341
342
344
352
355
358
367
372
375
376
379
382
383
384
388
391
395
9
SQL Server Service Broker
9.1
9.3
9.4
Architektur
9.1.1
Service Oriented Architecture (SOA)
9.1.2
Service Broker-Kommunikation
9.1.3
Service Broker-Komponenten
-.
Erstellung von Anwendungen
9.2.1
T-SQL-Kommandos für eine Service Broker-Kommunikation
9.2.2
Eine Service Broker-Beispielanwendung
9.2.3
Service Broker-Aktivierung
Überwachung von Server- und Datenbankobjekten
Zusammenfassung
10
Datenbankentwicklung mit .NET
423
10.1
10.2
10.3
10.4
10.5
10.6
10.7
10.8
10.9
SQL Server und die .NET CLR
Sicherheitsaspekte
Assemblys
Der Namensraum Microsoft.SqlServer.Server
Datentypen - der Namensraum System.Data.SqlTypes
Datenbankprojekte mit Visual Studio 2005 erstellen
10.6.1 Erstellen eines Datenbankprojektes
10.6.2 Erstellen von gespeicherten Prozeduren
10.6.3 Erstellen von benutzerdefinierten Funktionen
10.6.4 Erstellen-benutzerdefinierter Typen
10.6.5 Erstellen von benutzerdefinierten Aggregaten
10.6.6 Erstellen von Triggern
10.6.7 Debuggen von CLR-Objekten
Noch einmal: Sicherheit
T-SQLoder.NET?
Zusammenfassung
423
425
426
430
431
431
432
434
442
445
457
460
462
463
467
468
11
Web Services mit dem SQL Server
469
11.1
11.2
Was sind Web Services?
<
.
SOAP-Endpunkte
11.2.1 Syntax zur Erstellung eines HTTP-Endpunktes
Reservierung von HTTP-Namensräumen
11.3.1 Implizite Reservierung
11.3.2 Explizite Reservierung
11.3.3 Löschen einer expliziten Reservierung
Aufbau der URL für einen Endpunkt
Einen Web Service erstellen und verwenden
11.5.1 Den AdWrksServicePoint-Endpankt erzeugen
11.5.2 Sicherheitsaspekte
11.5.3 Den Web Service verwenden
Zusammenfassung
469
470
471
473
474
475
475
476
476
477
478
481
486
9.2
11.3
11.4
11.5
11.6
397
:
397
398
399
401
402
402
403
417
„...418
421
12
Optimierung von Abfragen
487
12.1
12.2
12.3
12.4
Die Speicherverwaltung von SQL Server
Ausführung von Abfragen durch SQL Server
Erstellen einer Testdatenbank
Verwenden von Indizes
12.4.1 Tabellen ohne Index - Heap
12.4.2 Gruppierte Indizes
12.4.3 Nicht gruppierter Index auf einem Heap
12.4.4 Nicht gruppierter Index auf einem gruppierten Index
12.4.5 Erzeugen von Indizes
.„
12.4.6 Löschen von Indizes
12.5 Messen der Leistung
12.5.1 Messen mit der Stoppuhr
12.5.2 Statistische Werte
12.5.3 Ausfuhrungspläne
12.5.4 Der SQL Server Profiler
12.5.5 Windows-Systemmonitor
12.5.6 Verbindung von Ablaufverfolgung und Logfile
12.6 Beispiele für die Optimierung
12.7 Weitere Hinweise für Indizes
12.7.1 Index-Selektivität
12.7.2 Index-Fragmentierung
12.7.3 Fehlende Indizes
12.7.4 Nicht verwendete Indizes
12.8 Der Datenbankmodul Optimierungsratgeber
12.9 Tipps zur Abfrageoptimierung
12.10 Zusammenfassung
,
'
488
489
490
491
491
492
494
495
497
501
501
502
503
505
511
517
518
521
528
528
529
529
531
532
535
538
j
13
Anwendungen mit den Notification Services erstellen
539
13.1
13.2
13.3
13.4
Einführung in SQL Server Notification Services ..Architektur
Erstellen von Notification Services-Anwendungen
Eine Notification Services-Beispielanwendung
13.4.1 Instance Configuration File (ICF)
13.4.2 Application Definition File (ADF)
13.4.3 Erzeugen und Ausführen der NS-Anwendung
13.4.4 Überprüfen der erzeugten NS-Datenbanken und -Objekte
13.4.5 Erzeugen von Abonnements und Ereignissen
Zusammenfassung
539
540
543
544
544
547
554
558
559
572
13.5
Literatur
573
Register
575
Herunterladen