Inhaltsverzeichnis

Werbung
D3kjd3Di38lk323nnm
ix
Inhaltsverzeichnis
Teil 1 SQL Server: Grundkonzepte
1
Einleitung
1.1
Eigenschaften von MS SQL Server 2005 . . . . . . . . . . . . . . . . . . . . . . . 3
1.2
Datenbanken – allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
Logische Datenunabhängigkeit . . . . . . . . . . . . . . . . . . . . . . .
Physikalische Datenunabhängigkeit . . . . . . . . . . . . . . . . . . . .
Prozedurale und nichtprozedurale Schnittstellen . . . . . . . . . .
Effiziente Abarbeitung der Datenbankoperationen . . . . . . . .
Datenintegrität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Konkurrierender Datenzugriff . . . . . . . . . . . . . . . . . . . . . . . .
Datensicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenschutz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
5
6
6
6
6
7
7
7
1.3
Relationale Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4
Datenbankdesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
Allgemeine Hinweise zur Normalisierung . . . . . . . . . . . . . .
Erste Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zweite Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dritte Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vierte Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Entity/Relationship(E/R)-Modell . . . . . . . . . . . . . . . . . . . . .
12
12
13
13
14
14
1.5
Datenbanksprache SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6
Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.7
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.8
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Dusan Petkovic, SQL Server 2005, dpunkt.verlag, ISBN 978-3-89864-367-2
x
Inhaltsverzeichnis
2
SQL Server Management Studio
2.1
SQL Server-Programmgruppe und Onlinedokumentation . . . . . . . . . 21
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
2.2
SQL Server-Onlinedokumentation . . . . . . . . . . . . . . . . . . . .
Benutzung von Management Studio . . . . . . . . . . . . . . . . . . .
Management Studio und der relationale
Datenbankserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verwaltung von Datenbanken mit Objekt-Explorer . . . . . . .
Verwaltung von Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
21
23
25
28
31
Abfragen mit SQL Server Management Studio . . . . . . . . . . . . . . . . . 35
2.2.1
2.2.2
Query Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Projektmappen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.4
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Teil 2 Der relationale Datenbankserver: Grundkonzepte
3
Grundkomponenten des relationalen Datenbankservers
3.1
Grundelemente der SQL-Sprache . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.1
3.1.2
3.1.3
3.1.4
3.2
Literale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Begrenzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Namen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reservierte Wörter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
43
45
45
45
Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.1
3.2.2
3.2.3
3.2.4
3.2.5
Numerische Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Alphanumerische Datentypen . . . . . . . . . . . . . . . . . . . . . . . .
Datums- und Zeitangaben . . . . . . . . . . . . . . . . . . . . . . . . . .
Abgeleitete Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Weitere Datentypen des relationalen Datenbankservers . . . .
46
47
49
50
50
3.3
Prädikate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4
Aggregatfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.5
Skalare Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.5.1
3.5.2
3.5.3
3.5.4
Numerische Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datumsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zeichenkettenfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . .
Systemfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
54
55
56
Inhaltsverzeichnis
3.6
xi
Skalare Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.6.1
Globale Variablen und Ausdrücke . . . . . . . . . . . . . . . . . . . . 59
3.7
NULL-Werte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.8
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.9
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4
Datendefinition
4.1
Erstellen der Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.1.1
4.1.2
4.1.3
4.1.4
4.1.5
Erstellen einer Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . .
Erstellen einer Kopie einer Datenbank . . . . . . . . . . . . . . . . .
CREATE TABLE-Anweisung – die Grundform . . . . . . . . . .
Erweiterte Form der CREATE TABLE-Anweisung . . . . . . .
CREATE TABLE-Anweisung und deklarative
Integritätsregeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.6 UNIQUE-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.7 PRIMARY KEY-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.8 FOREIGN KEY-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.9 Referenzielle Integrität . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.10 ON DELETE- und ON UPDATE-Angabe . . . . . . . . . . . . . .
4.1.11 CHECK-Bedingung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.12 Weitere Anweisungen zur Erstellung der
Datenbankobjekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2
64
66
67
69
70
72
72
73
74
77
78
79
Integritätsregeln und Wertebereiche . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.2.1
4.2.2
4.2.3
4.3
63
Alias-Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Definition der Standardwerte . . . . . . . . . . . . . . . . . . . . . . . 83
Regeldefinition für Wertebereiche . . . . . . . . . . . . . . . . . . . . 84
Änderung der Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.3.1
4.3.2
4.3.3
Änderung einer Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . 86
Änderung der Tabellenstruktur . . . . . . . . . . . . . . . . . . . . . . 88
Erweiterte Form der ALTER TABLE-Anweisung . . . . . . . . 89
4.4
Löschen der Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.5
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.6
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5
Einfache Abfragen
5.1
Grundform der SELECT-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . 95
Dusan Petkovic, SQL Server 2005, dpunkt.verlag, ISBN 978-3-89864-367-2
95
xii
Inhaltsverzeichnis
5.2
WHERE-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.2.1
5.2.2
5.2.3
5.2.4
5.3
Boolesche Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Operatoren IN und BETWEEN . . . . . . . . . . . . . . . . . . . . . 102
NULL-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
LIKE-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Einfache Unterabfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.3.1
5.3.2
5.3.3
5.3.4
5.3.5
Unterabfragen und Vergleichsoperatoren . . . . . . . . . . . . . .
Unterabfragen und IN-Operator . . . . . . . . . . . . . . . . . . . .
Operatoren ANY und ALL . . . . . . . . . . . . . . . . . . . . . . . .
Funktion EXISTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unterabfragen in der FROM-Klausel . . . . . . . . . . . . . . . . .
111
112
113
115
116
5.4
GROUP BY-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.5
Aggregatfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.5.1
5.5.2
5.5.3
5.5.4
Standard-Aggregatfunktionen . . . . . . . . . . . . . . . . . . . . . .
Statistische Aggregatfunktionen . . . . . . . . . . . . . . . . . . . . .
Super-Aggregatfunktionen . . . . . . . . . . . . . . . . . . . . . . . . .
Benutzerdefinierte Aggregatfunktionen . . . . . . . . . . . . . . .
118
123
124
125
5.6
HAVING-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.7
ORDER BY-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.8
SELECT-Anweisung und IDENTITY-Eigenschaft . . . . . . . . . . . . . . 128
5.9
Mengenoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.10
Verwendung von CASE in Ausdrücken . . . . . . . . . . . . . . . . . . . . . . 134
5.11
COMPUTE-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.12
Temporäre Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
5.13
Berechnete Spalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
5.14
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.15
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
6
Komplexe Abfragen
6.1
Verknüpfen zweier oder mehrerer Tabellen . . . . . . . . . . . . . . . . . . . 143
6.2
Zwei Syntaxformen für die Join-Operation . . . . . . . . . . . . . . . . . . . 144
6.2.1
6.2.2
6.2.3
6.2.4
Equijoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Kartesisches Produkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Natürlicher Join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Thetajoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
143
145
147
149
150
Inhaltsverzeichnis
6.2.5
6.2.6
6.2.7
xiii
Verknüpfung von mehr als zwei Tabellen . . . . . . . . . . . . . 152
Eine Tabelle mit sich selbst verknüpfen . . . . . . . . . . . . . . . 154
Outer Join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
6.3
Korrelierte Unterabfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
6.4
EXISTS-Funktion in Unterabfragen . . . . . . . . . . . . . . . . . . . . . . . . 161
6.5
Common Table Expressions – CTE . . . . . . . . . . . . . . . . . . . . . . . . 165
6.5.1
6.5.2
6.5.3
Benannte Ausdrücke in nichtrekursiven Abfragen . . . . . . 165
Benannte Ausdrücke in rekursiven Abfragen . . . . . . . . . . 167
APPLY-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
6.6
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
6.7
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
7
Änderung der Tabelleninhalte
7.1
INSERT-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
7.1.1
7.1.2
173
Einfügen einer Reihe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Einfügen mehrerer Reihen . . . . . . . . . . . . . . . . . . . . . . . . . 176
7.2
UPDATE-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.3
DELETE-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
7.4
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
7.5
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
8
SQL-Erweiterungen und gespeicherte Prozeduren
8.1
Transact-SQL-Erweiterungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
8.1.1
8.1.2
8.1.3
8.1.4
8.1.5
8.1.6
8.2
BEGIN-Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IF-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WHILE-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lokale Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Weitere prozedurale Anweisungen . . . . . . . . . . . . . . . . . .
Ausnahmebehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
183
184
184
185
186
187
188
Gespeicherte Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
8.2.1
8.2.2
8.2.3
Erstellung und Ausführung der gespeicherten
Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Systemprozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Gespeicherte Prozeduren und CLR . . . . . . . . . . . . . . . . . . 197
Dusan Petkovic, SQL Server 2005, dpunkt.verlag, ISBN 978-3-89864-367-2
xiv
Inhaltsverzeichnis
8.3
Benutzerdefinierte Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
8.3.1
8.3.2
Erstellung und Ausführung benutzerdefinierter
Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Benutzerdefinierte Funktionen und CLR . . . . . . . . . . . . . . 206
8.4
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
8.5
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
9
Indizes und die Optimierung der Abfragen
9.1
Indizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
9.1.1
9.1.2
9.1.3
9.2
WHERE-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
AND-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Join-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Allgemeine Kriterien zur Verbesserung der Effizienz . . . . . . . . . . . . 221
9.3.1
9.3.2
9.3.3
9.3.4
9.4
Clustered und Nonclustered Indizes . . . . . . . . . . . . . . . . . . 211
Transact-SQL-Anweisungen in Bezug auf Indizes . . . . . . . . 213
Indizes und Schlüssel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Kriterien zur Erstellung eines Index . . . . . . . . . . . . . . . . . . . . . . . . . 219
9.2.1
9.2.2
9.2.3
9.3
209
Join statt korrelierter Unterabfrage . . . . . . . . . . . . . . . . . .
Unvollständige Anweisungen . . . . . . . . . . . . . . . . . . . . . . .
LIKE-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL und das Optimieren von Suchanweisungen . . . . . . . .
222
222
223
223
Der Optimierer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
9.4.1
9.4.2
9.4.3
Statistiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Implementierung der Join-Operation . . . . . . . . . . . . . . . . . 229
Hinweise für den Optimierer . . . . . . . . . . . . . . . . . . . . . . . 231
9.5
dbcc-Kommando und Indizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
9.6
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
9.7
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
10
Sichten
10.1
Datendefinitionsanweisungen und Sichten . . . . . . . . . . . . . . . . . . . . 243
243
10.1.1 Erstellen von Sichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
10.1.2 Sichten modifizieren und löschen . . . . . . . . . . . . . . . . . . . . 249
10.2
Abfragen auf Sichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
10.3
INSERT-Anweisung und Sichten . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Inhaltsverzeichnis
xv
10.4
UPDATE-Anweisung und Sichten . . . . . . . . . . . . . . . . . . . . . . . . . . 254
10.5
DELETE-Anweisung und Sichten . . . . . . . . . . . . . . . . . . . . . . . . . . 256
10.6
Indizierte Sichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
10.6.1 Anforderungen bezüglich indizierter Sichten . . . . . . . . . . . 258
10.6.2 Änderung der Struktur einer indizierten Sicht . . . . . . . . . . 261
10.6.3 Optimiererhinweise und indizierte Sichten . . . . . . . . . . . . 261
10.7
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
10.8
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
11
Systemkatalog des relationalen Datenbankservers
11.1
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
11.2
Katalogsichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
11.2.1
11.2.2
11.2.3
11.2.4
11.3
Katalogsicht sys.objects . . . . . . . . . . . . . . . . . . . . . . . . . . .
Katalogsicht sys.columns . . . . . . . . . . . . . . . . . . . . . . . . . .
Katalogsicht sys.database_principals . . . . . . . . . . . . . . . . .
Katalogsicht sys.databases . . . . . . . . . . . . . . . . . . . . . . . . .
263
264
265
265
265
Weitere Formen von Katalogsichten . . . . . . . . . . . . . . . . . . . . . . . . 266
11.3.1 Kompatibilitätssichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
11.4
Abfragen mit Hilfe von Katalogsichten . . . . . . . . . . . . . . . . . . . . . 267
11.5
Andere Abfragemöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
11.5.1
11.5.2
11.5.3
11.5.4
Systemprozeduren und der Systemkatalog . . . . . . . . . . . . .
Systemfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Eigenschaftsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . .
Informationsschema . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
268
270
271
271
11.6
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
11.7
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
12
Sicherheitskonzept des relationalen Datenbankservers
12.1
Authentifizierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
275
12.1.1 Verschlüsselungsmechanismen . . . . . . . . . . . . . . . . . . . . . 277
12.1.2 Authentifizierung mit Hilfe der DDL-Anweisungen . . . . . . 278
12.1.3 Authentifizierung mit Hilfe der Systemprozeduren . . . . . . 280
12.2
Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
12.2.1 Schemata und Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
12.2.2 DDL-Anweisungen bezüglich Schemata . . . . . . . . . . . . . 282
Dusan Petkovic, SQL Server 2005, dpunkt.verlag, ISBN 978-3-89864-367-2
xvi
12.3
Inhaltsverzeichnis
Datenbanksicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
12.3.1 Aufbau der Datenbanksicherheit mit Hilfe der
DDL-Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
12.3.2 Aufbau der Datenbanksicherheit mit Hilfe der
Systemprozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
12.3.3 Standard-Datenbankschemata . . . . . . . . . . . . . . . . . . . . . . 287
12.4
Rollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
12.4.1
12.4.2
12.4.3
12.4.4
12.5
Vordefinierte Serverrollen . . . . . . . . . . . . . . . . . . . . . . . . .
Vordefinierte Datenbankrollen . . . . . . . . . . . . . . . . . . . . . .
Applikationsrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Benutzerdefinierte Rollen . . . . . . . . . . . . . . . . . . . . . . . . . .
288
289
290
291
Autorisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
12.5.1 GRANT-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
12.5.2 DENY-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
12.5.3 REVOKE-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
12.6
Einschränkung des Datenzugriffs mit Hilfe von Sichten . . . . . . . . . . 300
12.7
Einschränkung des Zugriffs mit gespeicherten Prozeduren . . . . . . . . 301
12.8
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
12.9
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
13
Prozedurale Datenintegrität
13.1
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
13.2
Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
13.2.1
13.2.2
13.2.3
13.2.4
13.2.5
Anwendungsgebiete für AFTER-Trigger . . . . . . . . . . . . . . .
Anwendungsgebiete für INSTEAD OF-Option . . . . . . . . .
Multiple Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Änderung der Trigger-Struktur . . . . . . . . . . . . . . . . . . . . . .
DDL-Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
305
308
311
312
313
314
13.3
Trigger und CLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
13.4
OUTPUT-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
13.5
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
13.6
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
14
Transaktionen
14.1
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
323
Inhaltsverzeichnis
14.2
xvii
Transact-SQL-Anweisungen in Bezug auf Transaktionen . . . . . . . . 324
14.2.1 Speicherung von Transaktionen . . . . . . . . . . . . . . . . . . . . 327
14.3
Sperren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
14.3.1
14.3.2
14.3.3
14.3.4
14.3.5
Objekte sperren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Typen von Sperren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SELECT-Anweisung und Sperren . . . . . . . . . . . . . . . . . . .
Isolierungsstufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reihenversionen und die Snapshot-Isolierungsstufen . . . . .
328
329
332
332
334
14.4
Gegenseitige Blockierung (Deadlock) . . . . . . . . . . . . . . . . . . . . . . . 335
14.5
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
14.6
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
15
Systemumgebung
15.1
Speicherung von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
15.2
Systemdatenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
15.3
SQL Server-Dienstprogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
339
15.3.1 sqlcmd-Dienstprogramm . . . . . . . . . . . . . . . . . . . . . . . . . . 341
15.3.2 bcp-Kommando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
15.4
Instanzen des SQL Server-Systems . . . . . . . . . . . . . . . . . . . . . . . . . 345
15.5
Unterstützung nationaler Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . 346
15.5.1 Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
15.6
Architektur des relationalen Datenbankservers . . . . . . . . . . . . . . . . 348
15.6.1 Architektur der Multiprozessorrechner . . . . . . . . . . . . . . . 348
15.6.2 Multithreading-Architektur . . . . . . . . . . . . . . . . . . . . . . . . 349
15.7
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
15.8
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Teil 3 Der relationale Datenbankserver: Systemadministration
16
Systemadministration
355
16.1
Relationaler Datenbankserver und Systemadministration . . . . . . . . 355
16.2
SQL Server 2005-Programmgruppe . . . . . . . . . . . . . . . . . . . . . . . . 356
16.2.1 SQL Computer Manager . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Dusan Petkovic, SQL Server 2005, dpunkt.verlag, ISBN 978-3-89864-367-2
xviii
Inhaltsverzeichnis
16.3
Systemadministrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
16.4
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
17
Planung und Ausführung der Systeminstallation
17.1
Planung der Installation eines SQL Server-Systems . . . . . . . . . . . . . 361
17.1.1
17.1.2
17.1.3
17.1.4
17.2
Anwendungszweck eines SQL Server-Systems . . . . . . . . . .
Hard- und Software-Voraussetzungen . . . . . . . . . . . . . . . .
SQL Server-Systemvarianten . . . . . . . . . . . . . . . . . . . . . . .
Notwendige Angaben bei der Installation . . . . . . . . . . . . . .
361
361
362
363
364
Installation eines SQL Server-Systems . . . . . . . . . . . . . . . . . . . . . . . 364
17.2.1 Installationsbeginn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
17.3
Administrationsaufgaben nach der Installation . . . . . . . . . . . . . . . . 371
17.3.1 Erstellung der Servergruppen und Registrierung
des Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
17.3.2 Server-Optionen setzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
17.4
SQL Server-Migrationsprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
17.4.1 Aufgaben vor der Migration . . . . . . . . . . . . . . . . . . . . . . . . 373
17.4.2 Durchführung der Migration . . . . . . . . . . . . . . . . . . . . . . . 374
17.4.3 Aufgaben nach der Migration . . . . . . . . . . . . . . . . . . . . . . 374
17.5
Starten und Stoppen der SQL Server-Dienste . . . . . . . . . . . . . . . . . . 375
17.6
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
18
Verwalten der Systemressourcen
18.1
Dateigruppen verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
377
18.1.1 Dateigruppen sichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
18.2
Datenbanken verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
18.2.1 Datenbank erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
18.2.2 Datenbankoptionen sichten bzw. ändern . . . . . . . . . . . . . . 381
18.2.3 Änderung der Datenbankstruktur . . . . . . . . . . . . . . . . . . . 383
18.3
Transaktionsprotokolle verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . 385
18.4
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
18.5
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
19
Benutzerverwaltung
19.1
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
387
Inhaltsverzeichnis
xix
19.2
Modusauswahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
19.3
Verwaltung des Zugriffs auf das Datenbanksystem . . . . . . . . . . . . 389
19.3.1 Verwalten von Logins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
19.4
Verwaltung des Zugriffs auf einzelne Datenbanken . . . . . . . . . . . . 390
19.4.1 Rollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
19.5
Zugriffsberechtigungen verwalten . . . . . . . . . . . . . . . . . . . . . . . . . 395
19.5.1 Objektberechtigungen verwalten . . . . . . . . . . . . . . . . . . . . 395
19.6
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
19.7
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
20
Archivierung und Wiederherstellung von Datenbanken
20.1
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
399
20.1.1 Mögliche Fehler eines Datenbanksystems . . . . . . . . . . . . . 399
20.1.2 Transaktionsprotokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
20.2
Archivierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
20.2.1
20.2.2
20.2.3
20.2.4
20.2.5
20.3
Volle Archivierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Differenzielle Archivierung . . . . . . . . . . . . . . . . . . . . . . . .
Archivierung des Transaktionsprotokolls . . . . . . . . . . . . .
Archivierung von Dateien . . . . . . . . . . . . . . . . . . . . . . . . .
Dynamische Archivierung . . . . . . . . . . . . . . . . . . . . . . . . .
Archivierung verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
20.3.1 Archivierung mit Hilfe von Management Studio . . . . . . . .
20.3.2 Planung der Archivierung mit Hilfe von Management
Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.3.3 Archivierung mit Hilfe der Transact-SQLAnweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.3.4 Welche Datenbanken sollen archiviert werden
und wann? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.3.5 Vorbeugende Maßnahmen gegen den Datenverlust . . . . . .
20.3.6 Hohe Verfügbarkeit eines SQL Server-Systems . . . . . . . . .
20.4
402
402
402
404
404
405
408
408
411
413
415
Wiederherstellung von Datenbanken . . . . . . . . . . . . . . . . . . . . . . . 416
20.4.1
20.4.2
20.4.3
20.4.4
20.4.5
Automatische Wiederherstellung . . . . . . . . . . . . . . . . . . . .
Vom Benutzer initiierte Wiederherstellung . . . . . . . . . . . .
Wiederherstellung einer Benutzerdatenbank . . . . . . . . . . .
Wiederherstellung der Masterdatenbank . . . . . . . . . . . . . .
Wiederherstellung anderer Systemdatenbanken . . . . . . . . .
Dusan Petkovic, SQL Server 2005, dpunkt.verlag, ISBN 978-3-89864-367-2
417
418
418
424
424
xx
Inhaltsverzeichnis
20.4.6 Wiederherstellungsmodelle . . . . . . . . . . . . . . . . . . . . . . . . . 425
20.4.7 Wiederherstellung zu einer Marke . . . . . . . . . . . . . . . . . . . 427
20.5
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
20.6
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
21
Automatische Ausführung der Administrationsaufgaben
21.1
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
21.2
SQL Server Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
21.2.1
21.2.2
21.2.3
21.2.4
21.2.5
21.2.6
21.2.7
21.3
Starten und Konfigurieren von SQL Server Agent . . . . . . .
Erstellung von Aufträgen und Operatoren . . . . . . . . . . . . .
Auftragsschritte definieren . . . . . . . . . . . . . . . . . . . . . . . . .
Auftrag erstellen mit Hilfe von Management Studio . . . . . .
Auftragsplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Operatoren und Benachrichtigungen erstellen . . . . . . . . . .
Auftragschronik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
431
433
433
434
434
436
437
439
Warnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
21.3.1
21.3.2
21.3.3
21.3.4
21.3.5
Fehlermeldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server-Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows-Ereignisanzeige . . . . . . . . . . . . . . . . . . . . . . . . . .
Erstellung von Warnungen . . . . . . . . . . . . . . . . . . . . . . . . .
Benutzerdefinierte Warnungen . . . . . . . . . . . . . . . . . . . . . .
440
442
443
443
447
21.4
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
21.5
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
22
Maßnahmen zur Verbesserung der Performance
22.1
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
22.2
Anwendungen und die Performance . . . . . . . . . . . . . . . . . . . . . . . . 452
22.2.1
22.2.2
22.2.3
22.2.4
22.3
Benutzeranforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . .
Effizienz des Benutzercodes . . . . . . . . . . . . . . . . . . . . . . . .
Logisches Datenbankdesign . . . . . . . . . . . . . . . . . . . . . . . .
Physikalisches Datenbankdesign . . . . . . . . . . . . . . . . . . . . .
451
452
452
453
453
Datenbankmanagementsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
22.3.1 Optimierer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
22.3.2 Sperren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Inhaltsverzeichnis
22.4
Systemressourcen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
22.4.1
22.4.2
22.4.3
22.4.4
22.5
xxi
Effizienz des Prozessors . . . . . . . . . . . . . . . . . . . . . . . . . . .
Arbeitsspeicher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Plattenein- und -ausgabe . . . . . . . . . . . . . . . . . . . . . . . . . .
Netzwerkeffizienz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
456
456
457
457
Komponenten zur Überwachung der Performance . . . . . . . . . . . . . 458
22.5.1 Performance-Werkzeuge für Datenbankanwendungen . . . 458
22.5.2 SQL Server-spezifische Performance-Werkzeuge . . . . . . . . 463
22.5.3 Werkzeuge zur Überwachung der Systemressourcen . . . . . 465
22.6
Das richtige Werkzeug wählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
22.6.1 SQL Server Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
22.6.2 Optimierungsratgeber . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
22.7
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
23
Tabellenpartitionierung
23.1
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
475
23.1.1 Weg zur Datenpartitionierung . . . . . . . . . . . . . . . . . . . . . . 476
23.1.2 Schritte für die Erstellung von Partitionen . . . . . . . . . . . . . 477
23.2
Richtlinien für partitionierte Tabellen und Indizes . . . . . . . . . . . . . 482
23.3
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
24
Datenreplikation
24.1
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
485
24.1.1 Datenreplikation – ein Überblick . . . . . . . . . . . . . . . . . . . . 486
24.1.2 Publikations-, Abonnement- und Verteilungsserver . . . . . . 487
24.2
Publikationstypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
24.2.1 Transaktionale Publikation . . . . . . . . . . . . . . . . . . . . . . . . 488
24.2.2 Snapshot-Publikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
24.2.3 Merge-Publikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
24.3
Replikationsmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
24.3.1 Zentraler Verleger mit dem Verteiler . . . . . . . . . . . . . . . . . 493
24.3.2 Zentraler Abonnent mit multiplen Verlegern . . . . . . . . . . . 493
24.3.3 Multiple Verleger mit multiplen Abonnenten . . . . . . . . . . 494
Dusan Petkovic, SQL Server 2005, dpunkt.verlag, ISBN 978-3-89864-367-2
xxii
24.4
Inhaltsverzeichnis
Datenreplikationen verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
24.4.1 Konfiguration des Verteilungs- und Publikationsservers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
24.4.2 Publikationen erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
24.4.3 Setzen des Abonnementservers . . . . . . . . . . . . . . . . . . . . . . 497
24.5
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
24.6
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Teil 4 MS Analysis Services und Business Intelligence
25
Data-Warehouse-Systeme – eine Einführung
503
25.1
OLTP- und Data-Warehouse-Systeme . . . . . . . . . . . . . . . . . . . . . . . 503
25.1.1 OLTP-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
25.1.2 Data-Warehouse-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . 504
25.2
Data Warehouse und Data Mart . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
25.3
Entwurf eines Data Warehouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
25.3.1 Dimensionales Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
25.4
Multidimensionale Würfel und Speicherungsmodi . . . . . . . . . . . . . 512
25.4.1 MOLAP, ROLAP und HOLAP . . . . . . . . . . . . . . . . . . . . . 513
25.5
Aggregationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
25.6
Zugriff auf Daten eines Data-Warehouse-Systems . . . . . . . . . . . . . . 514
25.7
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
25.8
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
26
MS Analysis Services
26.1
Business Intelligence Development Studio . . . . . . . . . . . . . . . . . . . . 518
26.1.1
26.1.2
26.1.3
26.1.4
26.1.5
26.1.6
26.2
Projektmappen-Explorer . . . . . . . . . . . . . . . . . . . . . . . . . .
Erstellung einer Datenquelle . . . . . . . . . . . . . . . . . . . . . . .
Erstellung einer Datenquellensicht . . . . . . . . . . . . . . . . . . .
Würfel erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aggregationen entwerfen . . . . . . . . . . . . . . . . . . . . . . . . . .
Daten des Würfels durchsuchen . . . . . . . . . . . . . . . . . . . . .
517
519
519
520
523
525
528
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Inhaltsverzeichnis
xxiii
27
Transact-SQL-Erweiterungen in Bezug auf Analysis Services
27.1
OLAP-Erweiterungen in Transact-SQL . . . . . . . . . . . . . . . . . . . . . 531
27.1.1
27.1.2
27.1.3
27.1.4
27.1.5
CUBE-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Operator ROLLUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aggregat- und Rangfunktionen . . . . . . . . . . . . . . . . . . . . .
TOP n-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PIVOT- und UNPIVOT-Operatoren . . . . . . . . . . . . . . . . .
531
531
535
536
541
543
27.2
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
28
Microsoft Reporting Services
28.1
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
545
28.1.1 Berichtsmanager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
28.1.2 Berichtsserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
28.1.3 Berichtsserver-Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . 546
28.2
Erstellung von Berichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
28.2.1 Berichtsserverprojekt-Assistent . . . . . . . . . . . . . . . . . . . . . 547
28.2.2 Parametrisierte Berichte . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
28.3
Ausführung und Verwaltung von Berichten . . . . . . . . . . . . . . . . . . 556
28.4
Berichte anstoßen bzw. verteilen . . . . . . . . . . . . . . . . . . . . . . . . . . 557
28.4.1 Bedarfsgesteuerte Berichte . . . . . . . . . . . . . . . . . . . . . . . . . 558
28.4.2 Abonnements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
28.5
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
Teil 5 Semistrukturierte und unstrukturierte Daten
29
XML – ein Überblick
563
29.1
Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
29.1.1 World Wide Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
29.1.2 XML und verwandte Sprachen . . . . . . . . . . . . . . . . . . . . . 564
29.2
XML – Grundkonzepte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
29.2.1
29.2.2
29.2.3
29.2.4
29.3
XML-Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XML-Namensräume . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DTD (Document Type Definition) . . . . . . . . . . . . . . . . . .
XML-Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
567
568
568
570
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
Dusan Petkovic, SQL Server 2005, dpunkt.verlag, ISBN 978-3-89864-367-2
xxiv
Inhaltsverzeichnis
30
SQL Server und XML
30.1
Speicherung von XML-Dokumenten in relationalen
Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
30.2
XML-Datentyp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
30.2.1
30.2.2
30.2.3
30.2.4
30.3
Indizierung einer XML-Spalte . . . . . . . . . . . . . . . . . . . . . .
Typisierte XML-Dokumente . . . . . . . . . . . . . . . . . . . . . . .
XML-Schemata und SQL Server . . . . . . . . . . . . . . . . . . . .
Typisierte XML-Spalten, -Variablen und -Parameter . . . . .
573
576
578
578
580
FOR XML-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
30.3.1
30.3.2
30.3.3
30.3.4
30.3.5
30.3.6
30.3.7
RAW-Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUTO-Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EXPLICIT-Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PATH-Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Spezifische Angaben für XML-Modi . . . . . . . . . . . . . . . . .
ELEMENTS-Angabe mit XSINIL . . . . . . . . . . . . . . . . . . . .
ROOT-Angabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
581
582
582
584
585
586
586
30.4
Abfragesprachen für XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
30.5
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
31
Volltextsuche
31.1
Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
31.2
Volltextindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
589
31.2.1 Auffüllen des Volltextindex . . . . . . . . . . . . . . . . . . . . . . . . 590
31.2.2 Erstellung eines Volltextkatalogs . . . . . . . . . . . . . . . . . . . . 592
31.2.3 Erstellung eines Volltextindex . . . . . . . . . . . . . . . . . . . . . . 592
31.3
Abfragen mit Hilfe eines Volltextindex . . . . . . . . . . . . . . . . . . . . . . 593
31.3.1
31.3.2
31.3.3
31.3.4
31.3.5
31.4
Vorbereitungsschritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FREETEXT-Prädikat . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CONTAINS-Prädikat . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FREETEXTTABLE-Funktion . . . . . . . . . . . . . . . . . . . . . .
CONTAINSTABLE-Funktion . . . . . . . . . . . . . . . . . . . . . .
593
595
596
598
599
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
Anhang
Index
603
Herunterladen