Inhalt | 4 |
Vorwort | 8 |
1.Grundlagen | 12 |
1.1. Beispiel-System MS SQL Server | 12 |
1.1.1.??Installation | 12 |
1.1.2. Management Studio | 15 |
1.?1.?3.??Abfragen direkt ausführen | 17 |
1.2. Beispieldatenbank AdventureWorks | 18 |
1.?2.?1.??Personaldaten | 18 |
1.?2.?2.??Produktdaten | 19 |
1.?2.?3.??Verkaufsdaten | 20 |
1.3. Das relationale Modell | 20 |
1.?3.?1.??Grundbegriffe des relationalen Modells | 20 |
1.?3.?2.??Semantisches Modell | 21 |
1.?3.?3.??Eigenschaften von Daten | 22 |
1.?3.?4.??Klassifikation von Datentypen | 24 |
1.?3.?5.??Beziehungen zwischen Daten | 25 |
1.?3.?6.??Entity-Relationship-Modell | 28 |
1.?3.?7.??Normalisierung mit Normalformen | 30 |
1.?3.?8.??DB-Anomalien | 35 |
1.4. Das relationale Datenbank-System | 36 |
1.?4.?1.??Zentrale Begriffe | 36 |
1.?4.?2.??Sichten auf ein relationales Datenbanksystem | 38 |
1.?4.?3.??Anforderungen an ein DBMS | 39 |
1.?4.?4.??Bestandteile einer Tabelle | 39 |
1.?4.?5.??Inhalte einer relationalen Datenbank | 40 |
1.?4.?6.??Architektur-Muster beim Einsatz relationaler Datenbanken | 41 |
1.5. SQL – Structured Query Language | 43 |
1.?5.?1.??Sprachbestandteile | 44 |
1.?5.?2.??Ursprung: Relationale Algebra | 44 |
2.Einfache Abfragen | 48 |
2.1. Grundstruktur von SELECT | 48 |
2.?1.?1.??Spaltenauswahl | 49 |
2.?1.?2.??Aliasnamen | 49 |
2.?1.?3.??Qualifizierte Spaltennamen | 50 |
2.2. Bedingungen | 51 |
2.?2.?1.??Einfache Bedingungen und Operatoren | 51 |
2.?2.?2.??Boolesche Operatoren | 53 |
2.?2.?3.??Mathematische Operatoren | 56 |
2.?2.?4.??Mengen-Operatoren | 58 |
2.3. Ergebnisse aufbereiten | 61 |
2.?3.?1.??Duplikate ein-/ausblenden | 61 |
2.?3.?2.??Ergebnisse sortieren | 62 |
2.?3.?3.??Standard-Aggregate | 63 |
2.?3.?4.??Gruppieren | 65 |
3.Komplexe Abfragen | 69 |
3.1. Verknüpfungen | 69 |
3.?1.?1.??Manuelle Verknüpfungen | 69 |
3.?1.?2.??ANSI-SQL-Verknüpfungen | 72 |
3.2. Unterabfragen | 78 |
3.?2.?1.??Einfache Unterabfragen | 78 |
3.?2.?2.??Spaltenunterabfragen | 80 |
3.?2.?3.??Abgeleitete Tabellen | 81 |
3.?2.?4.??Korrelierte Unterabfragen | 84 |
3.?2.?5.??Operatoren für Unterabfragen | 86 |
3.3. Verzweigungen | 88 |
3.?3.?1.??CASE mit Selektor | 88 |
3.?3.?2.??Selektorlose CASE-Anweisung | 90 |
4.Datenmanipulation | 93 |
4.1. Datenstrukturen anlegen | 93 |
4.?1.?1.??Tabellen grafisch anlegen | 93 |
4.?1.?2.??Tabellen mit SQL erstellen | 98 |
4.?1.?3.??Tabellen und ihre Eigenschaften ändern | 103 |
4.?1.?4.??Sichten | 105 |
4.?1.?5.??Datentypen | 108 |
4.?1.?6.??Indizes | 110 |
4.2.Daten bearbeiten | 110 |
4.?2.?1.??Vorbereitung | 110 |
4.?2.?2.??Einfügen | 112 |
4.?2.?3.??Aktualisieren | 114 |
4.?2.?4.??Löschen | 116 |
4.3.Objekte verwalten | 118 |
4.?3.?1.??Katalogsichten für Objekte | 118 |
4.?3.?2.??Funktionen | 120 |
5.Grundlagen T-SQL | 124 |
5.1. T-SQL Blöcke | 124 |
5.?1.?1.??SQL als Programmiersprache | 124 |
5.?1.?2.??Variablen und Anweisungen | 124 |
5.2. Kontrollanweisungen | 126 |
5.?2.?1.??Fallunterscheidungen | 126 |
5.?2.?2.??Schleifen | 127 |
5.3. Fehlerbehandlung | 128 |
5.?3.?1.??Ausnahmen | 128 |
5.?3.?2.??Traditionelle Fehlerbehandlung | 130 |
5.4. Cursor | 131 |
5.?4.?1.??Deklaration | 131 |
5.?4.?2.??Verwendung | 132 |
5.?4.?3.??Beispiele | 134 |
5.5. Transaktionen | 137 |
5.?5.?1.??Einfache Transaktionen | 137 |
5.?5.?2.??Sicherungspunkte | 140 |
5.?5.?3.??Erweiterte Transaktionssteuerung | 140 |
6.Programm-Module in der DB | 143 |
6.1. Prozeduren | 143 |
6.?1.?1.??Einführung | 143 |
6.?1.?2.??Prozedurarten | 146 |
6.?1.?3.??Parameter und Aufruf | 148 |
6.2. Funktionen | 151 |
6.?2.?1.??Skalare Funktionen | 152 |
6.?2.?2.??Tabellenwertfunktion | 153 |
6.3. Trigger | 157 |
6.?3.?1.??Grundlagen | 157 |
6.?3.?2.??DML-Trigger | 158 |
6.?3.?3.??DDL-Trigger | 162 |
6.?3.?4.??Weitere Optionen | 165 |
7.Administration | 167 |
7.1. Sicherheit | 167 |
7.?1.?1.??Allgemeine Überlegungen zur Sicherheit | 167 |
7.?1.?2.??Datensicherheit | 169 |
7.?1.?3.??Zugriffskontrolle | 169 |
7.?1.?4.??Rollen | 172 |
7.?1.?5.??Benutzer verwalten | 172 |
7.?1.?6.??Rechte verwalten | 174 |
7.?1.?7.??Rechte kaskadierend weitergeben | 175 |
7.?1.?8.??Sicherheit von Prozeduren, Funktionen und Trigger | 177 |
7.2. Sicherung und Wiederherstellung | 180 |
7.?2.?1.??Datensicherung | 180 |
7.?2.?2.??Wiederherstellung von Datenbanken | 182 |
7.?2.?3.??DB-Zustand | 183 |