Vorwort 15 Teil I Grundlagen 19 i Einführung In das Thema Datenbanken 21 I.I Warum ist Datenbankdesign wichtig? 26 i.2 1.2.1 1.2.2 1.2.3 Dateisystem und Datenbanken Historische Wurzeln Probleme bei der Datenhaltung im Dateisystem Datenredundanzen und Anomalien 28 29 30 37 1.3 Das Fallbeispiel 39 1.4 Zusammenfassung 40 1.5 1.5.1 1.5.2 Aufgaben Wiederholung Zum Weiterdenken 43 43 44 2 Datenbanksysteme, Datenbankanwendungen und Middleware . . . . 45 2.1 Datenbanksysteme 45 2.2 Verschiedene Arten von Datenbanksystemen 49 2.3 DBMS-Funktionen 50 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 Datenbankmodelle Hierarchische Datenbanken Netzwerk-Datenbanken Relationale Datenbanken ER-Datenbankmodelle Objektorientierte Datenbanken 53 54 59 61 67 70 2.5 2.5.1 2.5.2 2.5.3 Datenbankanwendungen Einschichtige Datenbankanwendungen Zweischichtige Datenbankanwendungen N-schichtige Datenbankanwendungen 75 76 76 78 2.6 2.6.1 2.6.2 2.6.3 Middleware ODBC . ADO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ADO.NET 79 80 81 83 2.7 Zusammenfassung 84 2.8 2.8.1 2.8.2 Aufgaben Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zum Weiterdenken 92 92 92 3 Das relationale Datenbankmodell 95 3.1 Entitäten und Attribute 96 3.2 Tabellen 97 3.3 Schlüssel 100 3.4 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8 Relationale Operatoren DIFFERENCE DIVIDE INTERSECT JOIN PRODUCT PROJECT SELECT UNION 106 106 107 107 108 110 111 112 112 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 Beziehungen innerhalb der Datenbank i:i-Beziehung i:N-Beziehung M:N-Beziehung Optionale und nicht-optionale Beziehungen Primär-/Fremdschlüssel und Datenredundanzen 3.6 Metadaten 118 3.7 Indizes 121 3.8 Zusammenfassung 122 3.9 3.9.1 3.9.2 Aufgaben Wiederholung Zum Weiterdenken 127 127 127 .■. . . . 113 113 115 116 117 117 Teil II DATENBANKDESIGN UND IMPLEMENTIERUNG 131 4 ER-Datenbankmodellierung . 133 4.1 4.1.1 4.1.2 4.1.3 4.1.4 Datenmodelle und Abstraktion Das konzeptionelle Modell Das interne Modell Das externe Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Das physikalische Modell 4.2 4.2.1 4.2.2 4.2.3 4.2.4 Das Entity-Relationship-Modell Entitäten . Attribute Primärschlüssel Beziehungen 140 140 141 147 . 149 4.3 Erstellen eines ER-Diagramms 164 4.4 Zusammenfassung 172 4.5 4.5.1 4.5.2 Aufgaben Wiederholung Zum Weiterdenken 175 176 176 5 Normalisierung 179 5.1 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 Warum Normalisierung? Das Normalisierungsbeispiel Erste Normalform Zweite Normalform Dritte Normalform Boyce-Codd-Normalform (BCNF) Höhere Normalformen 179 181 182 186 188 193 194 5.2 Normalisierung und Datenbankdesign 198 5.3 Denormalisierung 202 5.4 Zusammenfassung 202 5.5 5.5.1 5.5.2 Aufgaben Wiederholung Zum Weiterdenken 204 204 . 205 134 135 137 138 139 6 SQL-Grundlagen 207 6.1 6.1.1 6.1.2 6.1.3 6.1.4 Einführung Historischer Überblick Datentypen Die SQL-Komponenten Logische Verknüpfungen 208 209 210 212 218 6.2 6.2.1 6.2.2 6.2.3 6.2.4 Daten mit SQL abfragen . Einfache Abfragen Tabellen verknüpfen mit Joins Verschachtelte Abfragen Sichten 6.3 6.3.1 6.3.2 6.3.3 Daten mit SQL verändern INSERT UPDATE DELETE 260 260 261 262 6.4 6.4.1 6.4.2 6.4.3 6.4.4 Weitere wichtige SQL-Befehle Mengenfunktionen Stringfunktionen Numerische Funktionen Datetime-Funktionen 263 263 268 270 272 6.5 Zusammenfassung . 273 6.6 6.6.1 6.6.2 Aufgaben Wiederholung Zum Weiterdenken 277 277 277 . . 223 224 245 255 256 Teil III WEITERFÜHRENDE THEMEN 279 7 Projektablauf bei der Erstellung einer Datenbank . 281 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 Der System Development Life Cycle . Planung Analyse System-Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implementierung Wartung 283 284 286 288 289 291 7.2 7.2.1 7.2.2 7.2.3 7.2.4 Der Datenbank-Lebenszyklus Grundlegende Analyse . Datenbankdesign Implementierung und Datenimport Test und Evaluierung 291 292 297 309 311 7.2.5 Betrieb 311 7.2.6 Wartung und Evolution 312 7.3 Zusammenfassung 312 7.4 7.4.1 Aufgaben Wiederholung 314 314 8 Transaktionen und konkurrierende Zugriffe . . . . . . . . . . . . . . . . . . . . 315 8.1 8.1.1 8.1.2 8.1.3 Was ist eine Transaktion? Eigenschaften einer Transaktion Transaktionsverwaltung mit SQL Das Transaktionsprotokoll 315 319 320 322 8.2 8.2.1 8.2.2 8.2.3 8.2.4 Konkurrierende Zugriffe . Lost Updates Dirty Read Nonrepeatable Read Phantome . 324 324 325 326 327 8.3 8.3.1 8.3.2 8.3.3 8.3.4 Sperrmechanismen (Locks) . Granularität. Sperrtypen Zwei-Phasen-Locking Deadlocks 8.4 Zusammenfassung 338 8.5 8.5.1 8.5.2 Aufgaben Wiederholung Zum Weiterdenken 341 341 342 9 Die Client-Server-Architektur 343 9.1 9.1.1 9.1.2 Was ist Client-Server? Geschichte von Client-Server Vorteile von Client-Server 343 344 345 9.2 9.2.1 9.2.2 9.2.3 9.2.4 Client-Server-Architektur Client-Komponenten Server-Komponenten Middleware Netzwerk-Protokolle 348 351 352 353 357 9.3 Zusammenfassung 363 9.4 9.4.1 Aufgaben . Wiederholung 366 366 328 329 334 . 335 336 io Verteilte Datenbanksysteme 367 IO.I Vor- und Nachteile verteilter Datenbanksysteme 368 10.2 Verteilte Datenverarbeitung vs. verteilte Datenbanken 373 10.3 Komponenten eines verteilten Datenbanksystems 375 10.4 Transparenz beim Datenzugriff 10.4.1 Transparente Datenverteilung . 378 379 10.4.2 Transparentes Transaktionsmanagement 384 10.5 Datenfragmentierung 387 10.6 Replikation 390 10.7 Zusammenfassung 391 10.8 Aufgaben 10.8.1 Wiederholung 394 394 11 Data-Warehouses 395 11.1 Die Notwendigkeit der Datenanalyse 397 11.2 11.2.1 11.2.2 Decision Support Systeme Der Unterschied zwischen operationalen Daten und DSS-Daten .. Anforderungen an eine DSS-Datenbank 398 401 409 11.3 11.3.1 11.3.2 417 Das Data-Warehouse 412 Data-Marts . 417 Zwölf Eigenschaften, an denen man ein Data-Warehouse erkennen kann 11.4 11.4.1 11.4.2 11.4.3 OLAP (Online Analytical Processing) OLAP-Architekturen Relationales OLAP (ROLAP) Multidimensionales OLAP (MOLAP) . 418 423 428 432 11.5 11.5.1 11.5.2 11.5.3 11.5.4 11.5.5 11.5.6 Das Sternschema Fakten Dimensionen Attribute Attribut-Hierarchien Stern-Schemata in der Praxis Techniken zur Erhöhung der Performance 436 436 437 437 440 441 442 11.6 Data-Mining 11.7 Zusammenfassung . . 445 448 ii.8 II.8.1 Aufgaben Wiederholung 449 449 A Lösungen zu den Übungsaufgaben 451 A.i A.I.I A.i.2 Kapitel i Wiederholungsaufgaben Aufgaben Zum Weiterdenken 451 451 453 A.2 A.2.1 A.2.2 Kapitel 2 . Wiederholungsaufgaben Aufgaben Zum Weiterdenken 453 453 455 A.3 A.3.1 A.3.2 Kapitel 3 Wiederholungsaufgaben Aufgaben Zum Weiterdenken 456 456 458 A.4 A.4.1 A.4.2 Kapitel 4 Wiederholungsaufgaben Aufgaben Zum Weiterdenken 459 459 461 A.5 A.5.1 A.5.2 Kapitel 5 Wiederholungsaufgaben Aufgaben Zum Weiterdenken 461 461 462 A.6 A.6.1 A.6.2 Kapitel 6 Wiederholungsaufgaben Aufgaben Zum Weiterdenken 463 463 465 A.7 A.7.1 A.7.2 Kapitel 7 Wiederholungsaufgaben Aufgaben Zum Weiterdenken 470 470 472 A.8 A.8.1 A.8.2 Kapitel 8 Wiederholungsaufgaben Aufgaben Zum Weiterdenken 472 472 474 A.9 A.9.1 A.9.2 Kapitel 9 Wiederholungsaufgaben Aufgaben Zum Weiterdenken 474 474 476 A.io Kapitel 10 A.10.1 Wiederholungs aufgaben 476 476 A.n Kapitel 11 478 A.II.I Wiederholungsaufgaben 478 Stichwortverzeichnis 481