Einleitung 21
UEber dieses Buch 21
Konventionen in diesem Buch 22
Was Sie nicht lesen muessen 23
Toerichte Annahmen ueber den Leser 23
Wie dieses Buch aufgebaut ist 24
Teil I: Einfuehrung in Datenbanksysteme 24
Teil II: Von der Aufgabenstellung zur relationalen Datenbank 24
Teil III: Zugriff auf relationale Datenbanken mit SQL 24
Teil IV: Die Verwaltung einer relationalen Datenbank 24
Teil V: Objektrelationale Datenbanksysteme 25
Teil VI: Grundlagen zur Erstellung von Datenbankanwendungen 25
Teil VII: Der Top-10-Teil 25
Symbole, die in diesem Buch verwendet werden 25
Wie es weitergeht 26
Teil I: Einfuehrung in Datenbanksysteme 27
Kapitel 1 Wozu Datenbanksysteme da sind 29
Daten und ihre Speicherung 29
Ein einfuehrendes Beispiel 32
Aufgaben 38
Vertiefungsfragen 38
UEbungen 38
Kapitel 2 Definition und Architektur von Datenbanksystemen 39
Dateiverarbeitung: Ein UEberblick 39
Merkmale von Anwendungen mit Dateizugriff 40
Datenbanksysteme: Architektur und Definition 43
Eigenschaften von Datenbanksystemen 44
Datenbank- und Informationssysteme 46
Wer macht was 46
Gesellschaftliche Auswirkungen grosser Datenbanken 47
Aufgaben 48
Wiederholungsfragen 48
Vertiefungsfragen 49
Kapitel 3 UEberblick ueber Datenmodelle 51
Klassifikation von Daten 51
Datenmodelle 52
Ein historischer UEberblick 54
Das netzwerkartige Datenmodell 56
Das relationale Datenmodell 58
Tabellen 58
Beziehungen 59
Datenbankschema 60
Beispiel 60
NoSQL-Datenmodelle 61
Spaltenorientierte Datenbanken 61
Dokumentenorientierte Datenbanken 62
Vergleich von NoSQL- und relationalen Systemen 63
Benutzungsschnittstellen 63
UEbersicht ueber Datenbanksysteme 65
Aufgaben 66
Wiederholungsfragen 66
Vertiefungsfragen 66
UEbungen 66
Kapitel 4 Vorgehensweise bei der Datenbankentwicklung 67
Ein einfacher Software-Entwicklungsprozess 67
Wie schreibt man Programme 67
UEberblick ueber aktuelle Vorgehensweisen 70
Phasenmodell der Datenbankentwicklung 71
Die Datenbank kommt ins Spiel 71
Von der Anforderungsanalyse zu Betrieb und Wartung 71
Die Anforderungsanalyse im Detail 74
Erhebungstechniken 74
Ergebnis der Anforderungsanalyse 75
Der Datenbankentwurf im Detail 76
Semantischer Entwurf 76
Logischer Entwurf 77
Physischer Entwurf 77
Beispiel 77
Ein Beispiel mit Anforderungsanalyse und Entwurf 79
Aufgaben 82
Wiederholungsfragen 82
Vertiefungsfragen 83
UEbungen 83
Teil II: Von der Aufgabenstellung zur relationalen Datenbank 85
Kapitel 5 Semantische Modellierung einer Datenbank 87
Entitaetstypen, Attribute und Beziehungen 87
Entitaetstypen 88
Attribute 89
Beziehungen 90
Beziehung oder Attribut 93
Die Entity-Relationship-Modellierung 94
Entitaetstypen und Attribute 94
Beziehungen 95
Erweiterung des klassischen ER-Modells: die MC-Notation 97
Beispiele 98
Weitere Notationsformen 103
Semantische Modellierung mit UML-Klassendiagrammen 104
Klassendiagramme 104
Beziehungen in UML-Klassendiagrammen 105
Constraints bei Beziehungen 106
Aufgaben 107
Wiederholungsfragen 107
Vertiefungsfragen 108
UEbungen 108
Kapitel 6 Das relationale Datenbankmodell im Detail 111
Erlaeuterungen zum Begriff >>Relation<< 111
Relationen sind Mengen 111
Konstruktionsregeln fuer Relationen 113
Primaer- und Fremdschluessel 114
3-Ebenen Architektur 116
Datenunabhaengigkeit 116
Sichten und Schemata 116
Merkmale relationaler Datenbanken 120
Integritaetsaspekte relationaler Datenbanken 122
Schluesselintegritaet 122
Typintegritaet 124
Referenzielle Integritaet 124
Transaktionsintegritaet 125
Relationenalgebra im UEberblick 129
Mengenoperationen der Relationenalgebra 129
Das kartesische Produkt 131
Spezielle Operationen der Relationenalgebra 132
Beispiele fuer Datenbankabfragen mit der Relationenalgebra 135
Aufgaben 136
Wiederholungsfragen 136
UEbungen 136
Kapitel 7 Entwurf und Implementierung des Datenbankschemas 139
Umsetzung eines Entity-Relationship-Diagramms in ein Datenbankschema 139
Entitaetstypen und Attribute 140
Beziehungen 140
Tabellen und ihre Attribute 145
Woran erkennt man gut strukturierte Tabellen? 145
Das Anomalie-Problem 146
Kriterien einer guten Zerlegung von Tabellen 147
Normalisierung 149
Die erste Normalform 150
Die zweite Normalform 151
Die dritte Normalform 152
Die Boyce-Codd-Normalform 154
Zusammenfassung 154
Erzeugen der Tabellen mit SQL 155
Syntax der SQL-Definitionen 156
Der Befehl CREATE TABLE 156
Datentypen 157
Integritaetsbedingungen (Constraints) 158
Automatische Schluesselgenerierung 162
AEnderung der Tabellenstruktur 163
Aufgaben 164
Wiederholungsfragen 164
Vertiefungsfragen 165
UEbungen 165
Teil III: Zugriff auf relationale Datenbanken mit SQL 169
Kapitel 8 Die DML-Befehle von SQL 171
SQL und relationale Datenbanksysteme 171
Der SELECT-Befehl im UEberblick 173
Der INSERT-Befehl 176
Einzelne Tupel speichern 177
Mehrere Tupel speichern 177
Attribute mit automatisch vergebenen Werten 178
Der UPDATE-Befehl 179
Der DELETE-Befehl 180
DML-Befehle und Fremdschluessel 180
Aufgaben 181
Wiederholungsfragen 181
Vertiefungsfragen 182
UEbungen 182
Kapitel 9 Der SELECT-Befehl im Detail 183
Datenbankschema fuer die Beispiele 183
Abfrage einer einzelnen Tabelle 184
Zaehlen und Sortieren 184
Numerische Operatoren 186
String-Operatoren 187
Logische Operatoren 189
Mengenwertige Filter 190
Behandlung von NULL-Werten 190
Abfragen ueber mehrere Tabellen 193
Mengenoperatoren 193
Join in der Where-Klausel 194
Der Join-Operator 197
Der EXISTS-Quantor 199
Gruppierung mit >>GROUP BY<< 200
Unterabfragen 203
Subselect in der Where-Klausel 203
Subselect in der From-Klausel 205
Subselect in der Select-Klausel 206
Aufgaben 208
Wiederholungsfragen 208
UEbungen 208
Teil IV: Die Verwaltung einer relationalen Datenbank 211
Kapitel 10 Benutzersichten 213
Was sind Benutzersichten? 213
Definition von Views 214
Beispiele fuer Views 214
Vorteile von Views 216
Datenunabhaengigkeit 216
Datenschutz durch Views 217
Vordefinition von SQL-Abfragen 217
Views und die Generalisierung/Spezialisierung 217
Untertypen als View 218
Obertyp als View 219
DML-Operationen bei Views 220
Aufgaben 222
Wiederholungsfragen 222
Vertiefungsfragen 222
UEbungen 222
Kapitel 11 Datensicherheit und Zugriffsrechte bei Datenbanken 225
Datensicherheit und Datenschutz 225
Was bedeutet das? 225
Schutzziele und Schutzmechanismen bei Datenbanken 226
Benutzer und ihre Zugriffsrechte 228
Benutzer 228
Rollen 229
Vergabe von Zugriffsrechten 230
Zuruecknahme von Rechten 232
Aufgaben 232
Vertiefungsfragen 232
UEbungen 233
Kapitel 12 Datenbankoptimierung 235
Einflussmoeglichkeiten bei SQL-Abfragen 235
UEbersetzung und Optimierung 236
Transaktionsverarbeitung 237
Speicherverwaltung 238
Ansatzpunkte fuer Tuning-Moeglichkeiten 238
Indizes als Zugriffspfade 239
Klassischer Index 239
Bitmap-Index 241
Der Ausfuehrungsplan 243
Partitionierung 244
Range-Partitionierung 245
List-Partitionierung 246
Hash-Partitionierung 246
Optimierung des Datenbankschemas 247
Zusammenfassung von Relationen 248
Einfuehrung redundanter Daten 248
Zerlegung einer Relation in mehrere kleinere 249
Spaltenorientierte Speicherung 250
Hardware und Systemumgebung 251
Einige Tipps zur Performance-Steigerung 252
Das sollten Sie beachten 252
Ein Beispiel 252
Aufgaben 253
Wiederholungsfragen 253
Vertiefungsfragen 253
UEbungen 253
Teil V: Objektrelationale Datenbanksysteme 255
Kapitel 13 Objektorientierung und relationale Datenbanksysteme 257
Objektorientierte Softwareentwicklung 257
Eigenschaften von Objekten 257
Beziehungen zwischen Klassen 258
Die Generalisierung/Spezialisierung 258
UEbertragung objektorientierter Konstrukte in die relationale Datenbankwelt 259
Schachtelung von Objekten 259
Assoziation, Aggregation und Komposition bei relationalen Datenbanken 260
Generalisierung/Spezialisierung und relationale Datenbanken 261
Der Begriff >>Impedance Mismatch<< 262
Das objektrelationale Datenbankmodell 262
Relationale Datenbanken und Objektorientierung 263
Merkmale des objektrelationalen Datenbankmodells 263
Beispiele fuer objektrelationale Strukturen 265
Aufgaben 266
Wiederholungsfragen 266
Vertiefungsfragen 266
UEbungen 267
Kapitel 14 Arbeiten mit objektrelationalen Tabellen 269
Einige objektrelationale Strukturen 269
Tabellen mit UDT als Attribut 270
Tabellen mit Listen als Attribut 273
Tabellen mit Tabellen als Attribut 276
Aufgaben 278
Wiederholungsfragen 278
Vertiefungsfragen 278
UEbungen 278
Teil VI: Grundlagen zur Erstellung von Datenbankanwendungen 279
Kapitel 15 Trigger und Stored Procedures 281
Architektur von Datenbank-Anwendungsprogrammen 281
PL/SQL 283
Grundlagen 283
Cursor-Verarbeitung 284
Trigger 285
Arten von Triggern 286
Syntax 286
Beispiele 289
Stored Procedures 291
Beispiele 292
Aufgaben 293
Wiederholungsfragen 293
Vertiefungsfragen 293
UEbungen 294
Kapitel 16 Programmieren oder Generieren von Datenbankanwendungen 295
JDBC 295
Architektur und Funktionalitaet 296
PDO: PHP und MySQL 300
Generieren von Web-Anwendungen 302
APEX-Grundlagen 302
Beurteilung 304
Aufgaben 304
Wiederholungsfragen 304
Vertiefungsfragen 304
UEbungen 304
Kapitel 17 Anwendungsbereiche relationaler Datenbanken 305
Informationssysteme in Unternehmen 305
Relationale Datenbanken als Basis von Data-Warehouse-Systemen 306
Definition und Grundlagen 306
Relationale Datenbank als Data Warehouse 309
Geo-Datenbanken als Anwendung objektrelationaler Systeme 311
Einfuehrung 312
Oracle Spatial (Locator) 312
Aufgaben 316
Wiederholungsfragen 316
Vertiefungsfragen 316
UEbungen 316
Kapitel 18 SQL oder nicht SQL 317
Zusammenfassung 317
Merkmale relationaler Datenbanksysteme 318
Welche Datenbank fuer welches Problem? 319
Aufgaben 320
Vertiefungsfragen 320
Teil VII: Der Top-10-Teil 321
Kapitel 19 Die 10 groessten Fehler beim Entwurf relationaler Datenbanken 323
Verletzung der Normalformen 323
Schlecht gewaehlte Variablennamen und Datentypen 324
Keine Check-Klauseln fuer Attribute 324
Keine Fremdschluesseldefinitionen 325
Redundante Daten 325
Datenbankdateien und deren Kopien auf demselben Laufwerk 325
Keine vollstaendige und korrekte Abbildung des semantischen Modells 326
Zu wenig Absprache mit dem Anwender 326
Glossar nicht ueberprueft bzw angepasst 326
Nicht genuegend Testdaten 327
Kapitel 20 Die 10 wichtigsten SQL-Befehle und ihre Varianten 329
SELECT mit einer Tabelle 329
SELECT mit mehreren Tabellen (Join) 330
SELECT mit Gruppierung 330
SELECT mit Unterabfrage 331
INSERT 331
UPDATE 332
DELETE 332
CREATE 332
DROP 333
COMMIT und ROLLBACK 333
Kapitel 21 10 Fragen bei der Entity-Relationship-Modellierung 335
ER-Modellierung oder UML? 335
Welche Schreibweise? 336
Sind die Entitaetstypen korrekt gebildet? 336
Sind alle notwendigen Beziehungen erkannt? 337
Redundante Beziehungen oder nicht? 337
Gibt es existenzabhaengige Entitaetstypen? 338
1:1-Beziehung: muss das sein? 338
Stimmen die Kardinalitaeten? 338
Ist das ER-Diagramm mit dem Anwender abgesprochen? 339
Ist das Glossar korrekt? 339
Anhang 341
Loesungen zu den UEbungen 343
UEbungen zu Kapitel 1 343
UEbungen zu Kapitel 3 343
UEbungen zu Kapitel 4 344
UEbungen zu Kapitel 5 345
UEbungen zu Kapitel 6 346
UEbungen zu Kapitel 7 348
UEbungen zu Kapitel 8 351
UEbungen zu Kapitel 9 352
UEbungen zu Kapitel 10 356
UEbungen zu Kapitel 11 358
UEbungen zu Kapitel 12 358
UEbungen zu Kapitel 13 359
UEbungen zu Kapitel 14 362
UEbungen zu Kapitel 15 363
UEbungen zu Kapitel 16 364
UEbungen zu Kapitel 17 366
Literaturverzeichnis 369
Stichwortverzeichnis 373