Datenbanken entwickeln mit SQL Server 2012

Werbung
Inhaltsverzeichnis
Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
Teil I
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.1
Warum dieses Buch? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.2
Aufbau des Buches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aufbau der einzelnen Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
18
1.3
Die Beispieldatenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
1.4
Schreibweisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
1.5
DVD, Softlinks und Website zum Buch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
1.6
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2 Der Microsoft SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.1
Historie des Microsoft SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sybase und die Anfänge des Microsoft SQL Server . . . . . . . . . . . . . . . . . . . . . . .
Microsoft SQL Server entsteht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Der SQL Server wird erwachsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server bekommt neue Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Kleiner Überblick über die wichtigsten Versionen und Builds . . . . . . . . . . . . . .
23
23
23
24
24
25
2.2
Neuerungen bei SQL Server 2008 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Neue Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sonstige Neuerungen für SQL Server 2008 Express . . . . . . . . . . . . . . . . . . . . . .
Neue Features für die größeren Editionen von SQL Server 2008 . . . . . . . . . . . . .
27
28
28
29
2.3
Neuerungen bei SQL Server 2008 R2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Neue Business-Intelligence-Features für SQL Server 2008 R2 . . . . . . . . . . . . . . .
Sonstige neue Features der größeren Editionen von SQL Server 2008 R2 . . . . . . . .
Neue Features von SQL Server 2008 R2 Express . . . . . . . . . . . . . . . . . . . . . . . . .
30
30
30
31
2.4
Neuerungen bei SQL Server 2012 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mission Critical Confidence – Sicherheit und Hochverfügbarkeit . . . . . . . . . . . .
Breakthrough Insight – neue BI-Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cloud On Your Terms – bessere Anbindung an die Cloud . . . . . . . . . . . . . . . . .
Neuerungen bei SQL Server 2012 Express . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Änderungen bei der Lizenzierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
31
32
33
33
34
3
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Inhaltsverzeichnis
2.5
Die verschiedenen SQL Server-Editionen im Vergleich . . . . . . . . . . . . . . . . . . .
SQL Server Compact Edition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server Express Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server Web Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server Standard Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server Enterprise Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server Parallel Data Warehouse Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server Developer Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server LocalDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
35
36
37
37
37
38
38
38
38
2.6
Übungen zu diesem Kapitel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
2.7
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
3 Installation und erste Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.1
Systemvoraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hardwarevoraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Softwarevoraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
41
42
3.2
Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation der Advanced Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aktualisieren von SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
43
54
3.3
Die wichtigsten SQL Server-Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server-Installationscenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server-Konfigurations-Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server Management Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server Data Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server-Import/Export-Assistent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SQLCMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
54
55
58
59
60
61
3.4
Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
3.5
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
Teil II
Datenbankgrundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4 Allgemeine Datenbankgrundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4.1
Erstellen von Datenbanken und Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Anlegen einer Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Anlegen von Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Spalten und Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NULL-Werte und Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
68
71
75
79
4.2
Anzeigen und Ändern von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ändern von Tabelleninhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Anzeigen von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
80
81
4
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Inhaltsverzeichnis
4.3
Bearbeiten von Datenbanken und Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ändern von Datenbankeinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Anpassen der Felddefinitionen einer Tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
83
84
4.4
Primärschlüssel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
4.5
Indizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Funktionsweise von Indizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Erstellen von Indizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
89
91
4.6
Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
4.7
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
5 Eine Tabelle kommt selten allein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
5.1
Relationen und Fremdschlüssel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
5.2
Normalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
5.3
Datenbankdiagramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Erstellen von Datenbankdiagrammen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ändern von Datenstrukturen mit Datenbankdiagrammen . . . . . . . . . . . . . . . . .
101
101
104
5.4
Abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
105
5.5
Sichten (Views) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sichten auf eine Tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sichten, die mehrere Tabellen nutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
107
108
108
5.6
Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
111
5.7
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
111
6 Kleine Einführung in SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
113
6.1
Was ist eigentlich SQL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
113
6.2
SQL-Anweisungen im Management Studio ausführen . . . . . . . . . . . . . . . . . . . .
114
6.3
Datenbankabfragen mit SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Abfragen auf einer Tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aggregierungsfunktionen und Gruppierungen . . . . . . . . . . . . . . . . . . . . . . . . .
Abfragen auf mehreren Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
116
116
119
120
6.4
Daten mit UPDATE, INSERT und DELETE bearbeiten . . . . . . . . . . . . . . . . . . .
INSERT und SELECT INTO zum Einfügen von Daten . . . . . . . . . . . . . . . . . . .
UPDATE zum Ändern von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DELETE und TRUNCATE TABLE zum Löschen von Daten . . . . . . . . . . . . . . .
122
122
123
124
6.5
Erstellen und Verwenden von Sichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Erstellen von Sichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verwenden von Sichten in SELECT-Abfragen . . . . . . . . . . . . . . . . . . . . . . . . . .
Verwenden von Sichten für Datenänderungsoperationen . . . . . . . . . . . . . . . . .
125
125
126
127
6.6
Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
130
6.7
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
130
5
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Inhaltsverzeichnis
Teil III
Datenbankentwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
133
7 Erweiterte SQL-Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
135
7.1
Komplexe SQL-SELECTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fallunterscheidung mit CASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fallunterscheidung mit IIF und CHOOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unterabfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aggregierungsfunktionen mit ROLLUP kumulieren . . . . . . . . . . . . . . . . . . . . .
135
135
137
138
141
7.2
Komplexe INSERTs, UPDATEs und DELETEs . . . . . . . . . . . . . . . . . . . . . . . . .
INSERT auf Basis von mehreren Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UPDATE auf Basis von mehreren Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DELETE auf Basis von mehreren Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
143
143
143
144
7.3
Daten abgleichen mit dem MERGE-Befehl . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die klassische Variante (ohne MERGE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die neue Variante (mit MERGE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
145
145
146
7.4
Common Table Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
148
7.5
Die OFFSET-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
148
7.6
Sequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
150
7.7
Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
153
7.8
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
154
8 SQL-Skripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
155
8.1
Arbeiten mit SQL-Skripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
155
8.2
Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Systemvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tabellenvariablen und temporäre Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
157
157
158
8.3
Fallunterscheidungen und Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fallunterscheidung mit IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Anweisungsblöcke mit BEGIN ... END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WHILE-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
160
160
161
161
8.4
Debuggen von SQL-Skripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schrittweise Ausführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Breakpoints (Haltepunkte) nutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
162
163
165
8.5
Fehlerbehandlung in SQL-Skripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RAISERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TRY ... CATCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
THROW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
166
166
168
169
8.6
Sperren, Transaktionen und Deadlocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sperren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
169
169
6
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Inhaltsverzeichnis
Transaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Deadlocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
170
173
8.7 Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
175
8.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
176
9 Gespeicherte Prozeduren, Funktionen, Trigger und Cursor . . . . . . . . . . . . . . . . . .
177
9.1
Systemprozeduren und –funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Systemprozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die wichtigsten Systemfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
177
177
180
9.2
Benutzerdefinierte gespeicherte Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . .
Einfache gespeicherte Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gespeicherte Prozeduren mit Parametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gespeicherte Prozeduren mit OUTPUT-Parametern . . . . . . . . . . . . . . . . . . . . .
184
185
185
187
9.3
Benutzerdefinierte Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Skalarwertfunktionen (oder kurz: Skalarfunktionen) . . . . . . . . . . . . . . . . . . . .
Tabellenwertfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aggregatfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
188
188
190
192
9.4
Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ein einfacher UPDATE-Trigger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Kombinierte DML-Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verwendung von geänderten Daten im Trigger . . . . . . . . . . . . . . . . . . . . . . . . .
INSTEAD OF-Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
193
193
196
196
198
9.5
SQL-Cursor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ein einfacher Cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cursor und Trigger kombiniert verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . .
199
199
200
9.6
Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
202
9.7
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
203
Teil IV
Datenbankadministration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
205
10 Datenbankadministration mit SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
207
10.1 Skriptgenerierung oder »SQL ist überall« . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Skriptgenerierung aus Dialogfeldern heraus . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Skriptgenerierung über den Objekt-Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . .
Skriptgenerierung mit dem Vorlagen-Explorer . . . . . . . . . . . . . . . . . . . . . . . . .
207
207
211
213
10.2 Verwalten von Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenbanken erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenbanken anpassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenbanken löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
214
215
216
218
7
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Inhaltsverzeichnis
10.3 Verwalten von Datenbankobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Indizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sichten, Funktionen, gespeicherte Prozeduren und Trigger . . . . . . . . . . . . . . . .
218
218
220
221
10.4 DDL-Trigger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Servertrigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenbanktrigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Was wurde eigentlich geändert? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
221
222
222
224
10.5 Übungen zu diesem Kapitel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
225
10.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
226
11 Benutzer, Rollen und Rechte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
227
11.1 Das SQL Server-Rechtesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
227
11.2 Anmeldungen und Authentifizierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Anlegen von SQL Server-Anmeldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows-Benutzer und -Gruppen als Anmeldungen anlegen . . . . . . . . . . . . . .
Anmeldungen testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
227
229
230
232
11.3 Verwalten von Datenbankbenutzern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
234
11.4 Rechte und Rollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Serverrechte und -rollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenbankrechte und -rollen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
237
237
240
11.5 Contained Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
242
11.6 Verwendung von Schemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schemas erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schemas verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Berechtigungen für Schemas verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
245
246
246
248
11.7 Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
250
11.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
251
12 Daten sichern und bewegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
253
12.1 Sichern von Datenbankdateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Der naive Backup-Ansatz: Dateien kopieren . . . . . . . . . . . . . . . . . . . . . . . . . . .
Trennen und Verbinden von Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . .
253
253
256
12.2 Das Transaktionslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
259
12.3 Sichern und Wiederherstellen von Datenbanken . . . . . . . . . . . . . . . . . . . . . . . .
Wahl der richtigen Sicherungsstrategie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
260
268
12.4 Import und Export von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Der Import-/Export-Assistent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Masseneinfügen per BULK INSERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
270
270
273
8
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Inhaltsverzeichnis
BCP – Masseneinfügen über die Kommandozeile . . . . . . . . . . . . . . . . . . . . . . .
Formatdateien für BULK INSERT und bcp nutzen . . . . . . . . . . . . . . . . . . . . . .
274
276
12.5 Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
277
12.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
278
Teil V
Erweiterte Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
279
13 SQL Server und .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
281
13.1 Schichtentrennung und Applikationsaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . .
282
13.2 Zugriff über ADO.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
282
13.3 LINQ to SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LINQ to SQL-Klassen per Quelltext erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . .
LINQ to SQL-Klassen mit dem Server-Explorer erstellen . . . . . . . . . . . . . . . . . .
285
285
288
13.4 Das ADO.NET Entity Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
289
13.5 Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
294
13.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
295
14 Reporting mit SQL Server Express mit Advanced Services . . . . . . . . . . . . . . . . . . .
297
14.1 Überblick über die Reporting Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
297
14.2 Konfiguration der Reporting Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
298
14.3 Erstellen eines Reports mit dem Report-Designer . . . . . . . . . . . . . . . . . . . . . . .
301
14.4 Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
307
14.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
307
15 Zusammenarbeit mit anderen SQL Server-Instanzen und -Editionen . . . . . . . . . . .
309
15.1 Verbindung zu anderen Servern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
309
15.2 Replikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Überblick über die SQL Server-Replikation . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Welche Rolle spielt SQL Server Express bei der Replikation? . . . . . . . . . . . . . . .
311
312
313
15.3 Die SQL Server LocalDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
313
15.4 Die SQL Server Compact Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
315
15.5 SQL Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zusammenspiel von SQL Azure und SQL Server 2012 . . . . . . . . . . . . . . . . . . . .
318
318
15.6 Umstieg auf eine größere Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
»Side by Side«-Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
»In Place«-Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
320
321
322
9
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Inhaltsverzeichnis
15.7 Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
322
15.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
322
16 Datenebenenanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
325
16.1 Überblick über Datenebenenanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
325
16.2 Erstellen von Datenebenenanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Extrahieren von Datenebenenanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . .
Registrieren von Datenebenenanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . .
326
326
330
16.3 Verteilen von Datenebenenanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bereitstellen von Datenebenenanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aktualisieren von Datenebenenanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . .
Löschen von Datenebenenanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
330
330
332
334
16.4 Importieren und Exportieren von Datenebenenanwendungen . . . . . . . . . . . . . .
Exportieren von Datenebenenanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . .
Importieren von Datenebenenanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . .
335
335
337
16.5 Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
338
16.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
338
17 Die SQL Server Data Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
339
17.1 Überblick über die SQL Server Data Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . .
339
17.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
340
17.3 Mit Datenbankprojekten arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Anlegen eines neuen Datenbankprojekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Objekte in Datenbankprojekten anpassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Veröffentlichen von Datenbankprojekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
344
344
347
349
17.4 Die CLR-Integration von SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
351
17.5 Sonstige nützliche Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Server-Explorer und SQL Server-Objekt-Explorer . . . . . . . . . . . . . . . . . . . . . . .
Schemavergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Statische Code-Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
354
354
355
356
17.6 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zukünftige Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Team Foundation Server Express . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
357
357
358
17.7 Übungen zu diesem Kapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
359
17.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
359
Nachwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
361
10
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Inhaltsverzeichnis
Anhänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
363
A Kleine SQL-Referenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
365
A.1 SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Einfache Abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Komplexere Abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Abfragen auf mehreren Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unterabfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Common Table Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
365
365
366
367
367
368
A.2 Data Manipulation Language (DML) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UPDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INSERT/SELECT INTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DELETE/TRUNCATE TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MERGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
368
368
369
369
370
A.3 Data Definition Language (DDL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenbanken erstellen und konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schemas erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tabellen erstellen und ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sichten erstellen und ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Indizes erstellen und aktualisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gespeicherte Prozeduren erstellen und ändern . . . . . . . . . . . . . . . . . . . . . . . . .
Benutzerdefinierte Funktionen erstellen und ändern . . . . . . . . . . . . . . . . . . . . .
Trigger erstellen und ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenbankobjekte löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
370
370
371
371
371
372
372
372
374
375
A.4 Data Control Language (DCL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Anmeldungen und Benutzer anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Server- und Datenbankrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Server- und Datenbankrechte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
375
375
376
376
A.5 SQL Server-Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Numerische Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Alphanumerische Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Binäre Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zeit- und Datumstypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sonstige Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
376
377
378
378
379
379
A.6 Systemobjekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Systemsichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Systemfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Systemprozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Systemvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
380
380
381
382
383
11
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Inhaltsverzeichnis
B Inhalt der Buch-DVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
385
B.1
Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Skriptdateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Projektdateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
386
386
386
387
B.2
SQL Server 2012 Express . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
387
B.3
SQL Server Compact 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
388
B.4
SQL Server Data Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
388
C Weiterführende Infos im Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
389
C.1 Die Website zu Buchreihe, Verlag und Autor . . . . . . . . . . . . . . . . . . . . . . . . . .
389
C.2 Microsoft-Websites zu SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
389
C.3 Downloads zu SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
391
C.4 Sonstige Websites zu SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
392
C.5 SQL Server Foren und Blogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
393
D Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
395
Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
403
12
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Kapitel 4
II – Datenbankgrundlagen
Allgemeine Datenbankgrundlagen
In diesem Kapitel lernen Sie
■
die wichtigsten Grundlagen zum Arbeiten mit relationalen Datenbanken
■
das Erstellen und Ändern von Datenbanken und Tabellen
■
wie man mit dem SQL Server Management Studio Daten anzeigen und ändern kann
■
was es mit Primärschlüsseln und Indizes auf sich hat
4.1 Erstellen von Datenbanken und Tabellen
Auch wenn der Microsoft SQL Server umgangssprachlich gerne als Datenbank bezeichnet wird, handelt
es sich dabei streng genommen um ein Datenbank-Management-System (also ein System zur Verwaltung von Datenbanken)1. Eine Datenbank dagegen ist eine Sammlung unterschiedlicher Daten, die thematisch in irgendeiner Form zusammengehören. Diese wiederum setzt sich vor allem aus Tabellen zusammen, die jeweils Daten in einer einheitlichen Struktur enthalten.
In unsere Beispielanwendung übersetzt heißt dies, dass es eine Datenbank (nennen wir sie einfach
»MediaBase«) gibt, die verschiedene Tabellen für Bücher, CDs und DVDs enthält.
Jede dieser Tabellen setzt sich aus Zeilen und Spalten zusammen, wobei die Zeilen alle dieselbe Struktur
haben, während die Spalten jeweils eine Eigenschaft eines Objekts (z.B. den Titel eines Buches) beschreiben.
Allerdings gibt es auch zwischen Datenbanken und Tabellen noch eine Schicht, die vielen nicht so geläufig ist: die Datenbankschemata. Bei einem Datenbankschema handelt es sich um eine Gruppe von Datenbankobjekten wie beispielsweise Tabellen und Sichten, die eine Untergruppe der Datenbank bilden
und daher auch ein gemeinsames Präfix bekommen. Wenn nicht explizit ein Schema angegeben wird, so
wird standardmäßig das dbo-Schema verwendet. Der Sinn eines Datenbankschemas ist zweierlei: Erstens wird so die Übersicht gesteigert, da alle Tabellen eines Schemas im Management Studio untereinander stehen, und zweitens lassen sich so leichter Rechte auf alle Tabellen eines Schemas erteilen, ohne
gleich die ganze Datenbank freigeben zu müssen.
____________
1
Da der Begriff Datenbank-Management-System ein wenig unhandlich ist, kann man als Kurzform auch Datenbanksystem verwenden.
67
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Kapitel 4
Allgemeine Datenbankgrundlagen
Anlegen einer Datenbank
Beginnen wir erst einmal mit dem Erstellen einer Datenbank:
1. Starten Sie SQL Server 2012 Management Studio und verbinden Sie sich mit der lokalen Serverinstanz SQL2012Express.
Abbildung 4.1: Verbindung mit SQL Server herstellen
2. Sofern nicht bereits sichtbar, blenden Sie über den Menüpunkt Ansicht/Objekt Explorer den Objekt-Explorer ein.
3. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf Datenbanken und wählen Sie den
Befehl Neue Datenbank aus.
4. Es erscheint das Dialogfeld zum Erstellen einer neuen Datenbank. Im linken Bereich können Sie
eine von drei möglichen Seiten mit Einstellungen auswählen: Allgemein, Optionen und Dateigruppen.
5. Nehmen Sie auf der Seite Allgemein folgende Einstellungen vor:
■
Datenbankname: MediaBase
■
Besitzer: <Standard>
■
Zeilendaten (erste Zeile in der Liste mit Datenbankdateien)
Logischer Name: MediaBase
Anfangsgröße (MB): 20
Automatische Vergrößerung: 10%, unbeschränkte Vergrößerung (diese Einstellung können
Sie vornehmen, wenn Sie auf die Schaltfläche mit den drei Punkten hinter dem entsprechenden Feld klicken)
■
Protokoll (zweite Zeile in der Liste mit Datenbankdateien)
Logischer Name: MediaBase_log
Anfangsgröße (MB): 10
Automatische Vergrößerung: 10%, unbeschränkte Vergrößerung
68
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
4.1 Erstellen von Datenbanken und Tabellen
II – Datenbankgrundlagen
Wenn Sie möchten, können Sie hier auch noch die Pfade, in denen die Datenbankdateien abgelegt
werden, prüfen und bei Bedarf anpassen.
Abbildung 4.2: Das Dialogfeld zum Erstellen einer neuen Datenbank
6. Überprüfen Sie (und korrigieren Sie gegebenenfalls) auf der Seite Optionen die folgenden Einstellungen:
■
Sortierung: <Standard>
■
Wiederherstellungsmodell: Vollständig
■
Kompatibilitätsgrad: SQL Server 2012 (110)
■
Einschlusstyp: Keine
7. Überprüfen Sie (und korrigieren Sie gegebenenfalls) auf der Seite Dateigruppen die folgenden Einstellungen:
■
Name: PRIMARY
■
Dateien: 1
■
Standard: (angekreuzt)
8. Klicken Sie auf OK und die neue Datenbank wird angelegt.
Sie haben nun eine neue Datenbank mit Namen MediaBase angelegt. Bevor wir beginnen, mit dieser
Datenbank zu arbeiten, möchte ich Ihnen kurz die gerade vorgenommenen Einstellungen erläutern:
69
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Kapitel 4
■
Allgemeine Datenbankgrundlagen
Datenbankname ist die Bezeichnung, über die Sie später auf die Datenbank zugreifen. Der Einfach-
heit halber empfiehlt es sich, hier eine Bezeichnung ohne Leerzeichen und Sonderzeichen (wie beispielsweise Umlaute) zu verwenden, da dies sonst an anderer Stelle zu Problemen führen kann.
■
Besitzer ist der Datenbankbenutzer, der automatisch volle Berechtigungen auf die gesamte Daten-
bank erhält. Mit der Einstellung <Standard> ist das automatisch der Benutzer, mit dem Sie während der Erstellung mit dem Datenbankserver verbunden sind (also Sie selbst).
■
Datenbankdateien Datenbanken werden in mehreren Dateien auf der Festplatte abgelegt. Im Nor-
malfall reichen zwei Dateien aus – eine für die eigentlichen Daten (hier Zeilendaten genannt) und
eine für das Protokoll. An dieser Stelle können Sie den Namen und die Anfangsgröße für diese Dateien definieren und auch festlegen, in welchen Schritten und bis zu welcher Maximalgröße die Dateien bei Bedarf automatisch wachsen dürfen. Ein Anlegen von weiteren Dateien macht vor allem
aus zwei Gründen Sinn:
■
Platz Wenn auf der Festplatte, auf der die Dateien bisher liegen, kaum noch Platz frei ist,
stellt man diese auf nicht mehr wachsend und fügt eine weitere Datei auf einer zweiten Festplatte hinzu.
■
Performance Durch das Anlegen von mehreren Dateien auf mehreren Platten kann man unter
Umständen Performance gewinnen, sofern auf diese Dateien parallel zugegriffen werden kann
(mehrere Partitionen auf derselben Platte machen hier also keinen Sinn).
Hintergrundinfo: Zeilendaten und Protokoll
Auch wenn dieses Thema an anderer Stelle noch einmal ausführlicher behandelt werden wird,
möchte ich hier kurz erläutern, was es mit den Zeilendaten- und Protokolldateien auf sich hat.
■
■
Zeilendaten sind die eigentlichen Daten, die in der Datenbank (oder in den Zeilen der
Tabellen einer Datenbank) enthalten sind. Diese Datei sollte möglichst bei ihrer Erstellung
schon so groß gewählt werden, dass sie die zu erwartende Menge der Daten aufnehmen
kann, da die automatische Vergrößerung zusätzlich Zeit kostet und daher nicht unnötig
verwendet werden sollte.
■
Protokoll Im Protokoll (oder auch Transaktionslog) werden Änderungen an den Zeilendaten zwischengespeichert, bevor diese endgültig in den Zeilendaten abgelegt werden. Dieser Mechanismus ist aus verschiedenen Gründen sinnvoll: So sind dadurch einerseits
Transaktionen möglich, andererseits kann mithilfe des Protokolls (bzw. einer Sicherung
desselben) nach einem Ausfall wieder ein Datenbankstand zu einem nahezu frei wählbaren Zeitpunkt hergestellt werden (sofern gewisse Rahmenbedingungen erfüllt sind). Beide
Themen werden aber in späteren Kapiteln noch ausführlicher angesprochen. Im Moment
reicht es völlig aus zu wissen, dass die Größe des Transaktionslogs von Häufigkeit und
Umfang der Datenänderungen abhängt. Je mehr und umfangreichere Änderungen anfallen, desto größer wird das Protokoll.
Sortierung legt den Modus der Sortierung (case sensitive, accent sensitive etc.) für die gesamte
Datenbank fest. Sofern Sie hier beim Installieren des SQL Server die richtige Auswahl getroffen haben (empfehlenswert ist beispielsweise Latin1_General_CI_AS), können Sie die Voreinstellung
<Standard> übernehmen. Wesentlich ist, dass möglichst alle Ihre Datenbanken dieselbe Sortierung
haben sollten, da es zu Problemen kommt, wenn Sie in einer Abfrage Tabellen mit unterschiedlichen Sortierungen verwenden wollen.
70
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
■
Wiederherstellungsmodell steuert den Grad, in dem Änderungen an Daten mitprotokolliert werden,
um bei Bedarf die Datenbank zu einem bestimmten Stand wiederherstellen zu können. Vollständig
gibt Ihnen hier alle Freiheiten; die Alternativen Einfach und Massenprotokolliert schreiben weniger
Daten, bieten dafür aber auch weniger Möglichkeiten bei Backup & Restore. Dieses Thema wird detaillierter in einem späteren Kapitel des Buches behandelt.
■
Kompatibilitätsgrad Sollten Sie Datenbanken und/oder Skripts von einer älteren SQL ServerVersion übernehmen, können Sie an dieser Stelle die Kompatibilität zu SQL Server 2005 (90) oder
SQL Server 2008 (100) erzwingen, allerdings unter Verzicht auf die neuen Features und Datentypen.
Daher sollte man möglichst die Voreinstellung SQL Server 2012 (110) beibehalten.
■
Dateigruppen Bei den Dateigruppen handelt es sich um eine logische Zwischenschicht, die zwischen Datenbankobjekten (wie beispielsweise Tabellen) und Datenbankdateien liegt. Beim Erstellen
von Datenbankobjekten können Sie nur angeben, in welcher Dateigruppe das Objekt angelegt wird.
Die Datenbankdateien selbst werden bei ihrer Erstellung ebenfalls Dateigruppen zugeordnet. Sofern es sich nicht um sehr große Datenbanken handelt (und das wird bei der Express Edition normalerweise nicht der Fall sein), werden Sie voraussichtlich nur mit einer Dateigruppe arbeiten, die
standardmäßig PRIMARY heißt.
Klicken Sie nun im Management Studio den Knoten Datenbanken an, um die neu erstellte Datenbank
zu sehen. Eventuell müssen Sie mit einem Rechtsklick auf den Punkt Datenbanken erst die Option Aktualisieren auswählen, damit die Darstellung auf den aktuellen Stand gebracht wird. Dieser Schritt funktioniert auf jeder Ebene des Objekt-Explorers und ist insbesondere dann notwendig, wenn Datenbankobjekte von anderen Benutzern oder per SQL-Skript erstellt wurden.
Mit einem Rechtsklick auf die neu erstellte Datenbank können Sie über die Option Eigenschaften die
gerade vorgenommenen Einstellungen überprüfen. Teilweise lassen sich diese hier auch ändern.
Anlegen von Tabellen
Nachdem nun eine Datenbank vorliegt, ist es an der Zeit, darin auch ein paar Tabellen anzulegen.
1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Knoten Datenbanken/MediaBase/Tabellen und wählen Sie den Befehl Neue Tabelle aus.
Im Detailbereich erscheint nun die Entwurfsansicht für Tabellen, bei der Sie die benötigten Spalten
direkt angeben können.
2. Tragen Sie in der ersten Zeile als Spaltenname ID ein und wählen Sie als Datentyp int aus. Das Feld
NULL-Werte zulassen sollte nicht angekreuzt werden.
3. Tragen Sie in derselben Weise die weiteren Felder in die nächsten Zeilen ein (die Bedeutung der
verschiedenen Datentypen wird weiter unten erklärt):
71
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
II – Datenbankgrundlagen
4.1 Erstellen von Datenbanken und Tabellen
Stichwortverzeichnis
3-Tier-Architektur 282
64-Bit-Version 24
A
Abfrage-Designer 105, 358
Abfrage-Editor 107
Abfragen 105
Abonnent 312
ABS 181, 382
ActiveX Data Objects 282, 395
Ad-hoc Reports 297
Administrator 50
ADO 282, 395
ADO.NET 282, 395
Command 283
Connection 283
DataAdapter 283
DataReader 283
DataRow 283
DataSet 283
DataTable 283
Entity Framework 289, 395
SqlCommand 283
SqlConnection 283
SqlDataAdapter 283
SqlDataReader 283
Aggregierungsfunktionen 119, 141, 192
Alphanumerische Datentypen 77, 378
ALTER DATABASE 216, 255, 259, 370
SET OFFLINE 255
SET ONLINE 255
SET SINGLE_USER 259
ALTER FUNCTION 372
ALTER INDEX 220, 372
REBUILD 220
REORGANIZE 220
ALTER PROCEDURE 372
ALTER TABLE 219, 371
ALTER TRIGGER 374
ALTER VIEW 126, 221, 371
AlwaysOn 32, 395
American National Standards Institute 113
Analysis Services 301, 395
Anmeldungen 227
sa 228
ANSI 113, 395
ANSI SQL 395
Anweisungsblöcke 161
Apollo 395
APP_NAME 183, 382
APPLY 192
Artikel 312
Assembly 351, 395
Assistent zum Kopieren von Datenbanken 61
Auditing 32
Ausfallsicherheit 37
Authentifizierung 49, 227, 395
gemischter Modus 49
SQL Server-Authentifizierung 49, 228
Windows-Authentifizierung 49, 227
Authentifizierungsmodus 63
Autorisierung 395
Automatische Vergrößerung 68, 84, 208
Availability Groups 32, 395
AVG 119
Azure 395, 400
Azure DataMarket 400
B
BACPAC-Dateien 335
BCP, Bulk Copy Program 260, 274, 395
Formatdateien 276
BEGIN TRANSACTION 171
BEGIN...END 161
Beispieldatenbank 19
Beispiele 386
Benannte Instanz 47
Benutzerdefinierte Funktionen 188
Benutzerdefinierte gespeicherte Prozeduren 184
Benutzerdefinierte Serverrollen 237
Benutzerkonten
Local Service 49
Local System 49
Lokaler Dienst 49
Lokales System 49
Network Service 49
Netzwerkdienst 49
Berechtigungen 248
Berichtsserverprojekt 302
Berichtsserverprojekt-Assistent 302
403
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
Besitzer 70
BI Semantic Model 33, 395
BIDS siehe Business Intelligence
Development Studio
bigint 77, 377
Binäre Datentypen 78, 378
binary 78, 378
bit 77, 377
Blockierungen 179
Blogs 393
BREAK 161
Breakpoints 165
Breakthrough Insight 39
Buch-DVD 385
Bulk Copy Program 274, 395
BULK INSERT 260, 273
Formatdateien 276
bulkadmin 238
Business Intelligence 24
Business Intelligence Development Studio 59, 339,
340, 395
Business Layer 282
C
CASE 135, 366
char 78, 378
CHECK OPTION 128
CHOOSE 137, 382
Cloud 31, 33
Cloud Computing 318, 396
Cloud On Your Terms 39
CLR 396
CLR-Integration 351
Code-Analyse 356
CodePlex 392
Command 283
COMMIT 170
COMMIT TRANSACTION 171
Common Language Runtime 351, 396
Common Table Expression 148, 156, 368
Community Technology Preview 27, 396
Compact Edition 315, 396
COMPUTE 142
CONCAT 183, 381
Conceptual Model 289
Conceptual Schema Definition Language 289, 396
Connection 283
Connection String 228
Contained Databases 32, 242, 396
CONTINUE 161
COS 181, 382
COUNT 119
CREATE DATABASE 215, 259, 370
FOR ATTACH 259
CREATE FUNCTION 372
CREATE INDEX 220, 372
CREATE LOGIN 230, 375
CREATE PROCEDURE 372
CREATE ROLE 376
CREATE SCHEMA 246, 371
CREATE TABLE 218, 371
CREATE TRIGGER 222, 374
CREATE USER 375
CREATE VIEW 125, 221, 371
Crescent siehe Power View
CROSS APPLY 192
CROSS JOIN 120
CRUD 122, 396
Crystal Reports 297
C-S Mapping 289
CSDL 289
CSL 396
CTE siehe Common Table Expression
CTP 396
CTP, Community Technology Preview 27
Cursor 199, 380
D
DACPAC-Datei 326, 335, 355
erzeugen 349
importieren 345
DAC-Paket 319, 326, 329, 396
DataAdapter 283
Data Center 318
Data Compare 357
Data Control Language 114, 230, 375, 396
Data Definition Language 114, 370, 396
Data Dude 339
Data Manipulation Language 114, 122, 368, 396
Data Mining 24, 29
Data Quality Services siehe SQL Server Data
Quality Services
Data Query Language 114, 396
Data Tier Application 396
Data Tier Applications siehe Datenebenenanwendungen
Data Transformation Services 24, 396
Data Warehouse 396
Database Engine Services 45
Database Layer 282
404
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
Database Owner 234, 245
DataReader 283
DataRow 283
DataSet 283
DataTable 283
Data-tier Applications siehe Datenebenenanwendungen
date 28, 78, 379
DATEADD 381
DATEDADD 181
DATEDIFF 181, 381
DATEFROMPARTS 181, 381
Dateigruppen 71
Daten
ändern 80
anzeigen 81
Datenbankbenutzer 234
Datenbankdateien 70, 71, 84, 215
Datenbankdiagramme 101, 214, 358
zum Ändern von Datenstrukturen 104
Datenbankeigenschaften 83
Datenbanken 67, 215, 386, 396
offline schalten 253
online schalten 253
sichern 253, 260
trennen 256
verbinden 256
wiederherstellen 253, 260
Datenbank-Management-System 67, 397
Datenbankname 70
Datenbankrechte 240
Datenbankrollen 240
db_accessadmin 240
db_backupoperator 240
db_datareader 240
db_datawriter 240
db_ddladmin 240
db_denydatareader 240
db_denydatawriter 240
db_owner 240
db_securityadmin 240
Datenbank-Schema 67
Datenbankschicht 282
Datenbanksystem 67
Datenbanktrigger 222
Datenbank Unit Test 340
Datenbankverschlüsselung 29
Datenebenenanwendungen 31, 319, 325, 339, 397
aktualisieren 332
bereitstellen 330
exportieren 335
Datenebenenanwendungen (Fortsetzung)
extrahieren 326
importieren 337
löschen 334
registrieren 330
Überblick 325, 339
Datengenerierung 340, 358
Datentypen 28, 71, 75, 376
alphanumerische 77, 378
bigint 77, 377
binär 78, 378
binary 78, 378
bit 77, 377
char 78, 378
cursor 380
date 28, 78, 379
datetime 78, 379
datetime2 78, 379
datetimeoffset 78, 379
decimal 77, 377
Filestream 28
float 77, 377
geography 28, 380
geometry 28. 380
hierarchyid 28. 379
image 78, 378
int 77, 377
money 77, 377
nchar 78, 378
ntext 78, 378
numeric 377
numerisch 77, 377
nvarchar 78, 378
nvarchar(MAX) 78, 378
real 77, 377
rowversion 379
smalldatetime 78, 379
smallint 77, 377
smallmoney 77, 377
sonstige 78, 379
sql_variant 379
table 380
temporale 78
text 78, 378
time 28, 78, 379
timestamp 379
tinyint 77, 377
uniqueidentifier 78, 183, 380
varbinary 78, 378
varbinary(MAX) 78, 378
varchar 78, 378
405
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
Datentypen (Fortsetzung)
varchar(MAX) 78, 378
xml 78, 380
Zeit und Datum 379
Datenvergleich 340
Datenverzeichnisse 50
DATEPART 180, 381
datetime 78, 379
datetime2 78, 379
datetimeoffset 78, 379
Datumsfunktionen
DATEADD 381
DATEDIFF 381
DATEFROMPARTS 381
DATEPART 381
DAY 381
GETDATE 381
MONTH 381
YEAR 381
DAY 180, 381
DB 397
db_accessadmin 240
db_backupoperator 240
db_datareader 240
db_datawriter 240
db_ddladmin 240
db_denydatareader 240
db_denydatawriter 240
db_owner 240
db_securityadmin 240
dbcreator 238
dbml-Datei 288
DBMS 397
dbo 67, 234, 245
dbschema-Dateien 326
DCL 114, 230, 375, 397
DDL 114, 370, 397
DDL-Trigger 193, 221, 328
EVENTDATA 224
Deadlocks 173
Debuggen 162
Breakpoints 165
Haltepunkte 165
Schnellüberwachung 164
decimal 77, 377
DECLARE 157
Default-Werte 79
DELETE 124, 128, 131, 144, 369
DELETED 196
DELETE-Trigger 193
Denali 25, 397
Denormalisierung 100
DENY 250, 376
Developer Edition 320
Dienstkonten 63
Differenzielle Sicherung 261
diskadmin 238
DISTINCT 117
Distributor 312
DLL 397
DML 114, 122, 368, 397
DML-Trigger 193
DQL 114, 397
DQS siehe SQL Server Data Quality Services
Drag & Drop 117
DROP 125
DROP DATABASE 218, 375
DROP FUNCTION 375
DROP INDEX 221, 375
DROP PROCEDURE 375
DROP SCHEMA 246, 375
DROP TABLE 220, 375
DROP TRIGGER 375
DROP VIEW 221, 375
DTS 397
Dundas Chart Controls 29
DVD 20
DWH 397
Dynamic Link Library 397
Dynamic SQL 114, 397
E
edmx-Datei 289, 292
Einfaches Wiederherstellungsmodell 260
Embedded SQL 114, 397
Enterprise Manager 24, 58, 397
Entity Framework 285, 289, 397
Conceptual Model 289
Conceptual Schema Definition
Language 289, 396
C-S Mapping 289
CSDL 289
CSL 396
edmx-Datei 289, 292
konzeptionelles Modell 289
logisches Modell 289
Mapping Specification Language (MSL) 289, 398
SSDL 289, 401
Storage Model 289
Storage Schema Definition Language 289, 401
Zuordnungsschicht 289
406
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
ETL 397
Evaluationsversion 37
EVENTDATA 224
Exclusive Lock 170
EXEC 177
EXECUTE 177
EXISTS 138, 367
EXP 181, 382
Extensible Markup Language 397
F
Fallunterscheidung 160
Featureauswahl 44, 63
Fehlerbehandlung 166
Felddefinitionen 84
Feldnamen, Schreibweise 74
FETCH NEXT 149
File Table 33, 39, 397
Filestream 28, 51, 397
float 77, 377
Foren 393
Formatdateien 276
Fremdschlüssel 95
FULL JOIN 120
Funktionen 221
Aggregatfunktionen 192
Skalarwertfunktionen 188
Tabellenwertfunktionen 190
G
Gemischter Modus 49
Geodaten 28
Geography, Datentyp 28, 351, 380
Geometry, Datentyp 28, 351, 380
Geschäftslogik 282
Gespeicherte Prozeduren 221
GETDATE 180, 381
Globally Unique Identifier 78, 397
GO 125, 156
GRANT 250, 376
GRANT OPTION 250
GROUP BY 119, 366
Gruppierter Index 91
Guest 234
GUID 397
H
Haltepunkte 165
Hardwarevoraussetzungen 41
Hauptspeicher 397
HAVING 119, 366
Hierarchische Daten 28
HierarchyId, Datentyp 28, 351, 379
Hochverfügbarkeit 37
HOST_NAME 183, 382
Hotfix 27, 397
Hydra 25
Hyper-V 30
I
Identitätsspezifikation 88
Identity 87
IDENTITY 153, 218
IF 160
IIF 137, 382
IIS 397
image 78, 378
Import-/Export-Assistent 60, 63, 270
IN 138, 367
Index 89
gruppiert 91
nicht gruppiert 89
Index Scan 90
Index Seek 89
Indizes 220
INFORMATION_SCHEMA.COLUMNS 381
INFORMATION_SCHEMA.ROUTINES 381
INFORMATION_SCHEMA.TABLES 381
INFORMATION_SCHEMA.VIEWS 381
Inline-SQL 114, 397
INNER JOIN 120
IN-Operator 118
INSERT 122, 127, 131, 143, 369
INSERT- und UPDATE-Spezifikation 99
INSERTED 196
INSERT-Trigger 193
Installation
In Place 322
Side by Side 321
Installationscenter 63
Instanz 46
benannte Instanz 47
Standardinstanz 47
407
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
Instanzkonfiguration 45, 63
INSTEAD OF-Trigger 198
int 77, 377
Integration Services 301, 395
IntelliSense 28, 288, 398
International Organization for Standardization 113
Internet Information Server 398
Internet Protocol 57
ISNULL 182, 382
ISO 113
Isolated Storage 36
J
JOIN 120, 367
Juneau 398
K
Katmai 25
Kilimanjaro 25
KILL 179
Kompatibilitätsgrad 71
Kompression 29
Komprimierte Sicherung 261
Konfiguration
Manager 55, 63
Manager für Reporting Services 58, 59, 298
Reporting Services 51
Konto 49
Konzeptionelles Modell 289
Kumulatives Update 27, 398
L
Language Integrated Query 398
LEFT 182, 381
LEFT JOIN 120
LEN 182, 381
Liberty 25
LIKE-Operator 118
Linked Server 309
LINQ 398
LINQ to ADO.NET 285
LINQ to DataSet 285
LINQ to Entities 285, 398
LINQ to Objects 285
LINQ to SQL 36, 285, 398
dbml-Datei 288
LINQ to XML 285
Lizenzbedingungen 386
Lizenzierung 34
LocalDB 34, 38, 39, 45, 313, 398
Local Service 49
Local System 49
LOG 181, 382
Logisches Modell 289
Lokaler Dienst 49
Lokales System 49
LOWER 182, 381
LTRIM 182, 381
M
Management Studio 63, 398
Mango 285, 316
Mapping Specification Language 289, 398
Massenoperationen 260
Massenprotokolliertes Wiederherstellungsmodell
260
Master Data Services 30, 32, 398
master.dbo.sp_detach_db 258
master.sp_addsrvrolemember 238
Mathematische Funktionen
ABS 382
COS 382
EXP 382
LOG 382
PI 382
SIN 382
MAX 119
MDS siehe Master Data Services
Medien 262
Mediensatz 262
Merge 28
MERGE 145, 156, 370
Merge-Replikation 312
Microsoft Data Engine 36, 398
Microsoft Management Console 398
Microsoft Press 389
Microsoft Sync Framework 398
Microsoft WebMatrix siehe WebMatrix
MIN 119
Mission Critical Confidence 39
MMC 398
Mobile Edition 316
Mobile Geräte 35
money 77, 377
MONTH 180, 381
MSDE 36, 398
MSDN 390
MSDN-Library 390
408
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
MSL 289, 398
Multi-Server Management 30
N
Named Pipes 57, 398
Namespace 398
nchar 78, 378
.NET 398
.NET-Assembly 351
.NET Framework 42, 398
.NET Framework-Integration 24
Network Service 49
Netzwerkdienst 49
Netzwerkkonfiguration 57
Netzwerkprotokolle
Named Pipes 57, 398
Shared Memory 57, 400
TCP/IP 57, 402
VIA 402
Virtual Interface Architecture 57
newid 89
NEWID 183, 382
Nicht gruppierter Index 89
Normalisierung 99, 398
Normalformen 100
Notification Services 24
ntext 78, 378
NULL 79
NULL-Werte 182
numeric 377
Numerische Datentypen 77, 377
nvarchar 78, 378
nvarchar(MAX) 78, 378
O
O/R-Mapper 282, 285, 398
Object Linking and Embedding Database 399
Objekt-Explorer 59, 68, 211, 340, 355
OData 399
ODBC 399
Offline schalten 253
OFFSET 148, 366
OLAP 399
cube 399
Tools 24
Würfel 399
OLEDB 399
OLTP 399
Online Analytical Processing 399
Online-Dokumentation 387
Online schalten 253
Online Transaction Processing 399
Open Data Protocol 399
Open Database Connectivity 399
Optimizer Hints 29
Oracle 24
ORDER BY 117, 366
OUTER APPLY 192
OUTER JOIN 121
OUTPUT 187
P
Paging 150
Paketausführungsprogramm 62
Pascal Casing 74, 399
PASS 393, 399
Peer-to-Peer-Replikation 312
Performance Data Collector 29
Performance Data Warehouse 29
PI 181, 382
Plan Guides 29
Plato 25
Pocket PC 35, 316, 401
Policy Based Management 28
Power Buffer 340
PowerPivot 30, 32, 399
PowerShell 399
PowerShell 2.0 30
Power View 32, 33, 39, 399
Präsentationsschicht 282
Presentation Layer 282
PRINT 160
processadmin 238
Professional Association for SQL Server 393, 399
Projektdateien 386
Projektmappen-Explorer 346
Projekttyp 340
Protokoll 68, 70, 208
Protokolldatei 215
public 238
Publikation 312
Publisher 312
Q
Query Analyzer 58
409
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
R
RAISERROR 166
RAM 399
Random Access Memory 399
RC, Release Candidate 27, 399
RDBMS 399
RDL, Report Definition Language 306, 399
Ready To Manufacturing 27, 400
real 77, 377
REBUILD 220
Rechte 237
Datenbankrechte 240
Serverrechte 237
RECONFIGURE 351
Redundante Informationen 100
Refactor Log 340
Referenzdaten-Deployment 358
Referenzielle Integrität 99
Relationales Datenbank-Management-System 400
Relationen 95
1:1-Relation 96
1:n-Relation 96
m:n-Relation 96
Release Candidate 27, 399
REORGANIZE 220
Replikation 45, 311, 400
Abonnent 312
Artikel 312
Client 312
Distributor 312
Merge-Replikation 312
Peer-to-Peer-Replikation 312
Publikation 312
Publisher 312
Replikationsmonitor 313
Snapshot-Replikation 312
Subscriber 312
Transaktionsreplikation 312
Verleger 312
Verteiler 312
Replikationsclient 312
Replikationsmonitor 313
Report Builder 297
Report Builder 3.0 30
Report Definition Language 306, 400
Report Designer 297, 301
Report Manager 297
Report Server 297
Reporting Services 24, 36, 45, 51, 297, 301, 395
Berichtsserverprojekt 302
Berichtsserverprojekt-Assistent 302
Datenquellen 297
Konfiguration 51, 298
Konfigurations-Manager 298
RDL 306, 399
Report Definition Language 306, 400
Report Designer 297, 301
Report Manager 297
Report Server 297
Reporting Services Konfigurations-Manager 298
Reporting Services-Konfiguration 63
Resource Governor 29
REVOKE 250, 376
Richtig einsteigen 389
RIGHT 182, 381
RIGHT JOIN 120
ROLLBACK 170
ROLLBACK TRANSACTION 171
Rollen 237
Datenbankrollen 240
Serverrollen 237
-zuordnung 236
ROLLUP 141, 366
ROWCOUNT 118
rowversion 379
RTM, Ready To Manufacturing 27, 400
RTRIM 182, 381
S
sa, Benutzerkonto 49, 228
Schema 67, 73, 245, 400
Berechtigungen 248
dbo 67, 245
-vergleich 355
Schichtentrennung 282
Schnellüberwachung 164
Schreibweisen 19
securityadmin 238
SELECT 116, 126, 131, 135, 160, 365, 396
GROUP BY 366
HAVING 366
OFFSET 366
ORDER BY 366
TOP 365
WHERE 365
SELECT DISTINCT 117
SELECT INTO 122, 260, 369
SELECT TOP 118
SEQUEL 113, 400
SEQUENCE 153
410
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
Sequenzen 150
Server 46
serveradmin 238
Serverdienste 47
SQL Server Agent 48
SQL Server Analysis Services 48
SQL Server-Datenbankmodul 48
SQL Server Integration Services 48
SQL Server Reporting Services 48
Startprogramm für SQL-Volltextfilter 48
Server-Explorer 288, 340, 354
Serverrechte 237
Serverrollen 237
benutzerdefiniert 237
bulkadmin 238
dbcreator 238
diskadmin 238
processadmin 238
public 238
securityadmin 238
serveradmin 238
setupadmin 238
sysadmin 238
Servertrigger 222
Service Broker 24, 328
Service Pack 27, 400
SET 157
SET ROWCOUNT 118
setupadmin 238
Sharding 38, 400
Shared Lock 170
Shared Memory 57, 400
Shiloh 25
Sichern von Datenbanken 253, 260
Sicherung
Automatisierung 270
differenzielle Sicherung 261
komprimierte Sicherung 261
Medien 262
Mediensatz 262
Sicherungssatz 262
Sicherungsstrategie 268
Transaktionsprotokollsicherung 261
vollständige Sicherung 260
Sicherungssatz 262
Sicherungsstrategie 268
Sichten 107, 125, 131, 221
SIN 181, 382
Skalarwertfunktionen 188
Skriptdateien 386
Skriptgenerierung 207
smalldatetime 78, 379
smallint 77, 377
smallmoney 77, 377
Smartphone 35, 316, 401
SMO 400
Snapshot-Replikation 312
Softlinks 20
Softwarevoraussetzungen 42
Sonstige Datentypen 379
Sortierung 70
sp_addrolemember 376, 382
sp_addsrvrolemember 376, 382
sp_databases 382
sp_rename 382
sp_renamedb 382
sp_sqlexec 382
sp_who 382
sp_who2 382
Spalten 67, 75
Sperren 169
Exclusive Lock 170
Shared Lock 170
Update Lock 170
Sphinx 25
SQL 113, 135, 400
ABS 181
Aggregatfunktionen 192
ALTER DATABASE 216, 255, 259, 370
ALTER FUNCTION 372
ALTER INDEX 220, 372
ALTER PROCEDURE 372
ALTER TABLE 219, 371
ALTER TRIGGER 374
ALTER VIEW 126, 221, 371
Anweisungsblöcke 161
APP_NAME 183
APPLY 192
AVG 119
BEGIN...END 161
BEGIN TRANSACTION 171
benutzerdefinierte Funktionen 188
benutzerdefinierte gespeicherte Prozeduren 184
BREAK 161
BULK INSERT 273
CASE 135, 366
CHECK OPTION 128
CHOOSE 137
COMMIT 170
COMMIT TRANSACTION 171
COMPUTE 142
CONCAT 183
411
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
SQL (Fortsetzung)
CONTINUE 161
COS 181
COUNT 119
CREATE DATABASE 215, 259, 370
CREATE FUNCTION 372
CREATE INDEX 220, 372
CREATE LOGIN 230, 375
CREATE PROCEDURE 372
CREATE ROLE 376
CREATE SCHEMA 246, 371
CREATE TABLE 218, 371
CREATE TRIGGER 222, 374
CREATE USER 375
CREATE VIEW 125, 221, 371
CROSS APPLY 192
CROSS JOIN 120
Cursor 199
Data Control Language 375
Data Definition Language 370
Data Manipulation Language 368
DATEDADD 181
DATEDIFF 181
DATEFROMPARTS 181
DATEPART 180
DAY 180
DCL 375
DDL 370
DECLARE 157
DELETE 124, 128, 131, 144, 369
DENY 250, 376
DISTINCT 117
DML 368
DROP 125
DROP DATABASE 218, 375
DROP FUNCTION 375
DROP INDEX 221, 375
DROP PROCEDURE 375
DROP SCHEMA 246, 375
DROP TABLE 220, 375
DROP TRIGGER 375
DROP VIEW 221, 375
EXEC 177
EXECUTE 177
EXISTS 138, 367
EXP 181
FETCH NEXT 149
FULL JOIN 120
GETDATE 180
GO 125, 156
GRANT 250, 376
SQL (Fortsetzung)
GRANT OPTION 250
GROUP BY 119, 366
HAVING 119, 366
HOST_NAME 183
IDENTITY 218
IF 160
IIF 137
IN 138, 367
INNER JOIN 120
IN-Operator 118
INSERT 122, 127, 131, 143, 369
ISNULL 182
JOIN 120, 367
KILL 179
LEFT 182
LEFT JOIN 120
LEN 182
LIKE-Operator 118
LOG 181
LOWER 182
LTRIM 182
MAX 119
Merge 28
MERGE 145, 156, 370
MIN 119
MONTH 180
NEWID 183
OFFSET 148, 366
ORDER BY 117, 366
OUTER APPLY 192
OUTER JOIN 121
OUTPUT 187
PI 181
PRINT 160
RAISERROR 166
RECONFIGURE 351
REVOKE 250, 376
RIGHT 182
RIGHT JOIN 120
ROLLBACK 170
ROLLBACK TRANSACTION 171
ROLLUP 141, 366
ROWCOUNT 118
RTRIM 182
SELECT 116, 126, 131, 135, 160, 365, 396
SELECT DISTINCT 117
SELECT INTO 122, 369
SELECT TOP 118
SET 157
SET ROWCOUNT 118
412
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
SQL (Fortsetzung)
SIN 181
Skalarwertfunktionen 188
Skripts 155
sp_addrolemember 376
sp_addsrvrolemember 376
SUBSTRING 182
SUM 119
Systemvariablen 157
Tabellenvariablen 158
Tabellenwertfunktionen 190
THROW 169
TOP 148, 365
Trigger 193
TRUNCATE TABLE 124, 369
TRY...CATCH 168
UNION ALL 121
UNION SELECT 121, 135, 367
UPDATE 123, 129, 131, 143, 368
UPPER 182
use 115
USER_NAME 183
Variablen 157
WHERE 117, 365
WHILE 161
WITH 148
YEAR 180
SQL Azure 31, 33, 38, 318, 400
DataMarket 33, 39, 400
DataSync 33, 400
Reporting 33, 400
SQL Data Services 38, 400
SQL Native Client 10.0-Konfiguration 57
SQL Server 46, 400
Compact Edition 315
Developer Edition 320
LocalDB 313
Mobile Edition 316
SQL Server 2012 Express 387
SQL Server 2012 Express mit Advanced Services 41,
387
SQL Server 2012 Management Studio 387
SQL Server 2012 Online-Dokumentation 387
SQL Server Agent 48, 400
SQL Server Analysis Services 24, 33, 48, 59, 401
SQL Server-Authentifizierung 49, 228
SQL Server Blogs 393
SQL Server-Browser 48
SQL Server Business Intelligence Edition 40
SQL Server CE 35
SQL Server CLR-Integration 351
SQL Server Compact 401
SQL Server Compact 4.0 388
SQL Server Compact 4.0 Runtime 388
SQL Server Compact Edition 35, 40, 315
SQL Server Compact Edition Books Online 388
SQL Server Data Quality Services 32, 33, 39, 401
SQL Server Data Tools 34, 39, 59, 63, 297, 301, 326,
340, 388, 401
SQL Server Data Tools – Development 339
SQL Server-Datenbankmodul 48
SQL Server-Datenbankprojekt 59
SQL Server Developer Edition 38, 40, 320
SQL Server-Dienste 56
SQL Server Editionen
Azure 38
Business Intelligence Edition 40
Compact Edition 35, 40
Developer Edition 38, 40
Enterprise Edition 37, 40
Express Edition 36, 40
Express mit Advanced Services 36, 41
Express mit Tools 36
Parallel Data Warehouse Edition 38, 40
Standard Edition 37, 40
Web Edition 37, 40
SQL Server Enterprise Edition 37, 40
SQL Server Enterprise Manager 401
SQL Server Express Edition 36, 40
SQL Server Express mit Advanced Services 36, 297
SQL Server Express mit Tools 36
SQL Server Foren 393
SQL Server-Import/Export-Assistent 60, 63, 319
SQL Server-Installationscenter 43, 54, 63
SQL Server-Instanz 46
SQL Server Integration Services 24, 32, 48, 59, 273,
319, 401
SQL Server-Konfigurations-Manager 55, 63
SQL Server LocalDB 34, 38, 39, 313, 387, 401
SQL Server Management Objects 401
SQL Server Management Studio 24, 33, 36, 39, 58,
63, 68, 96, 114, 155, 387, 401
Objekt-Explorer 211
Vorlagen-Explorer 213
SQL Server Mobile 35, 401
SQL Server Mobile Edition 316
SQL Server-Netzwerkkonfiguration 57
SQL Server-Objekt-Explorer 355
SQL Server Parallel Data Warehouse Edition 38, 40
SQL Server-Replikation siehe Replikation
SQL Server Reporting Services 24, 48, 59, 297, 401
SQL Server Standard Edition 37, 40
413
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
SQL Server-Tools 54
SQL Server Utility 30
SQL Server Web Edition 37, 40
sql_variant 379
SQL95 25
SQLCMD 61, 63, 114, 155, 401
SqlCommand 283
SqlConnection 283
SQL-Cursor 199
SqlDataAdapter 283
SqlDataReader 283
SqlLocalDB.exe 314
SqlLocalDB-Hilfsprogramm 314
SQL-Skripts 155
SSAS 24, 301, 401
SSCE 401
SSDL 289, 401
SSDT siehe SQL Server Data Tools
SSIS, SQL Server Integration Services 24, 273, 301,
401
SSMO 401
SSMS siehe SQL Server Management Studioudio
SSRS 24, 301, 401
Standardinstanz 47
Standardwert 79
Startprogramm für SQL-Volltextfilter 48
Statische Code-Analyse 356
Storage Model 289
Storage Schema Definition Language 289, 401
StreamInsight 30, 37, 401
Structured English Query Language 400
Structured Query Language 113, 401
Subscriber 312
SUBSTRING 182, 381
SUM 119
Sybase 23
Sybase Adaptive Server 23
Sync Framework 401
sys.databases 381
sys.sp_databases 177
sys.sp_renamedb 179
sys.sp_sqlexec 180
sys.sp_who 178
sys.sp_who2 178
sysadmin 238
Systemadministrator 49, 228
Systemfunktionen 180, 381
ABS 181
APP_NAME 183, 382
CHOOSE 382
Systemfunktionen (Fortsetzung)
COS 181
DATEDADD 181
DATEDIFF 181
DATEPART 180
DAY 180
EXP 181
GETDATE 180
HOST_NAME 183, 382
IIF 382
ISNULL 382
LEFT 182
LEN 182
LOG 181
LOWER 182
LTRIM 182
MONTH 180
NEWID 183, 382
PI 181
RIGHT 182
RTRIM 182
SIN 181
SUBSTRING 182
UPPER 182
USER_NAME 183, 382
YEAR 180
Systemobjekte 380
Systemprozeduren 177, 382
sp_addrolemember 382
sp_addsrvrolemember 382
sp_databases 382
sp_rename 382
sp_renamedb 382
sp_sqlexec 382
sp_who 382
sp_who2 382
sys.sp_databases 177
sys.sp_renamedb 179
sys.sp_sqlexec 180
sys.sp_who 178
sys.sp_who2 178
Systemsichten 380
INFORMATION_SCHEMA.COLUMNS 381
INFORMATION_SCHEMA.ROUTINES 381
INFORMATION_SCHEMA.TABLES 381
INFORMATION_SCHEMA.VIEWS 381
sys.databases 381
Systemvariablen 157, 383
Systemvoraussetzungen 41
414
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
T
U
Tabelle 67, 71, 218
Tabellen-Designer 340, 347
Tabellennamen, Schreibweise 74
Tabellenvariablen 158
Tabellenwertfunktionen 190
table 380
Table Scan 89
Table-valued Parameter 29
Tablix Control 29
TCP/IP 57, 402
Team Foundation Server 338
Team Foundation Server Express 358
TechNet 390
tempdb 158, 159
Temporale Datentypen 78
Temporäre Tabellen 158
text 78, 378
THROW 169
time 28, 78, 379
timestamp 379
tinyint 77, 377
TOP 148, 365
Transact-SQL 114, 402
Transaktionen 70, 144, 170, 402
BEGIN TRANSACTION 171
COMMIT TRANSACTION 171
ROLLBACK TRANSACTION 171
Transaktionslog 70, 259
Transaktionsprotokollsicherung 261
Transaktionsreplikation 312
Transmission Control Protocol 57
Transmission Control Protocol/Internet
Protocol 402
Trennen von Datenbanken 256
Trigger 193, 221, 402
Datenbanktrigger 222
DDL-Trigger 193, 221
DELETED 196
DELETE-Trigger 193
DML-Trigger 193
INSERTED 196
INSERT-Trigger 193
INSTEAD OF-Trigger 198
Servertrigger 222
UPDATE-Trigger 193
TRUNCATE TABLE 124, 369
TRY...CATCH 168
T-SQL 33, 39, 114, 401
Unicode 77, 402
Unicode-Komprimierung 31, 77
Unified Ressource Locator 402
UNION ALL 121
UNION SELECT 121, 135, 367
Unique Identifier 402
uniqueidentifier 78, 89, 153, 183, 380
Unit Test 358
Unstrukturierte Daten 28
Unterabfragen 138, 367
UPDATE 123, 129, 131, 143, 368
Update Lock 170
Updates 54
UPDATE-Trigger 193
Upgrade 320
UPPER 182, 381
URL 402
use 115
USER_NAME 183, 382
Utility Control Point 30
V
varbinary 78, 378
varbinary(MAX) 78, 378
varchar 78, 378
varchar(MAX) 78, 378
Variablen 157
Lebensdauer 158
Systemvariablen 157
Tabellenvariablen 158
Verbinden von Datenbanken 256
Verbindungsserver 309
Verbindungszeichenfolge 228
Verleger 312
Verteiler 312
VIA siehe Virtual Interface Architecture
Views 107, 125
Virtual Interface Architecture 57, 402
Visual Basic .NET 402
Visual C# 402
Visual Studio 301, 326, 402
Visual Studio 11 357
Visual Studio for Database Professionals 339
Vollständige Sicherung 260
Vollständiges Wiederherstellungsmodell 260
Volltextkatalog 328
Volltextsuche 45
415
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Stichwortverzeichnis
Vorlagenbrowser 213
Vorlagen-Explorer 213
W
WebMatrix 317
Webservice 402
Website 20
WHERE 117, 365
WHILE 161
Wiederherstellen von Datenbanken 253, 260
Wiederherstellungsmodell 71, 260
einfach 71, 260
massenprotokolliert 71, 260
vollständig 71, 260
Windows Azure 38, 402
Windows Mobile 35, 312, 401
Windows Phone 35, 285, 312, 316
Windows PowerShell 42
Windows Update 54
Windows-Authentifizierung 49, 227
Windows-Benutzer 230
Windows-Benutzergruppen 230
WITH 148
Y
YEAR 180, 381
Yukon 25
Z
Zeichenkettenfunktionen
CONCAT 381
LEFT 381
LEN 381
LOWER 381
LTRIM 381
RIGHT 381
RTRIM 381
SUBSTRING 381
UPPER 381
Zeilen 67
Zeilendaten 68, 70, 208
Zeit- und Datumstypen 379
Zuordnungsschicht 289
X
xml 78, 380
XML 402
XML, Datentyp 351
XML-Unterstützung 24
416
Robert Panther - Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012, Microsoft Press, ISBN 978-3-86645-219-0
Herunterladen