Datenmodelle, Datenbanksprachen und ... - Semantic Scholar

30.01.2008 - aus dem Vorwort zur dritten Auflage xvi. Vorwort ...... Ein Datenbanklehrbuch muss dieser sich verändernden Welt gerecht werden und sollte ...
273KB Größe 23 Downloads 559 Ansichten
Datenmodelle, Datenbanksprachen und DatenbankmanagementSysteme von

Gottfried Vossen Universit¨at M¨ unster 5. u ¨berarbeitete und erweiterte Auflage c 2008 by R. Oldenbourg Verlag, ISBN 978-3-486-27574-2 ° 30. Januar 2008

Inhaltsverzeichnis Auszug ...

xiv

... aus dem Vorwort zur ersten Auflage

xiv

... aus dem Vorwort zur zweiten Auflage

xv

... aus dem Vorwort zur dritten Auflage

xvi

Vorwort zur fu ¨ nften Auflage

xix

I

Einfu ¨ hrung

1

1 Motivationen, Historisches, Abgrenzungen 1.1 Daten-intensive Anwendungen und deren Anforderungen . 1.2 Datenbanken und Informationssysteme . . . . . . . . . . . 1.3 Entwicklung von Datenbanksystemen und Datenmodellen 1.3.1 Filesysteme . . . . . . . . . . . . . . . . . . . . . . 1.3.2 Generische Sicht eines Datenbanksystems . . . . . 1.3.3 Netzwerk- und hierarchische Datenbanken . . . . . 1.3.4 Relationale Datenbanken . . . . . . . . . . . . . . 1.3.5 Objektrelationale Datenbanken . . . . . . . . . . . 1.3.6 XML-Datenbanken . . . . . . . . . . . . . . . . . . 1.4 Bibliographische Hinweise und Erg¨anzungen . . . . . . . . ¨ 1.5 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

3 3 6 7 8 10 12 15 18 21 22 23

2 Aufbau von Datenbanken und Datenbanksystemen 2.1 Datenunabh¨angigkeit . . . . . . . . . . . . . . . . . . . 2.2 Die ANSI/SPARC-Schemaebenen . . . . . . . . . . . . 2.3 Sprachebenen und -klassen . . . . . . . . . . . . . . . 2.4 Ein Schichtenmodell f¨ ur Datenbanksysteme . . . . . . 2.5 Bibliographische Hinweise, Erg¨anzungen, Querbez¨ uge . ¨ 2.6 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

25 25 26 29 32 39 41

. . . . . .

. . . . . .

vi

Inhalt

II Klassische Konzepte: ER- und relationales Datenmodell. SQL 3 Datenbank-Entwurf mit dem Entity-Relationship-Modell 3.1 Der Datenbank-Lebenszyklus . . . . . . . . . . . . . . . . . 3.2 Aspekte der Qualit¨atssicherung . . . . . . . . . . . . . . . . 3.2.1 Qualit¨atskriterien f¨ ur den Datenbankentwurf . . . . 3.2.2 Die Grundz¨ uge ordnungsm¨aßiger Modellierung . . . 3.3 Phasen des Entwurfsprozesses . . . . . . . . . . . . . . . . . 3.3.1 Anforderungsanalyse und -spezifikation . . . . . . . 3.3.2 Konzeptioneller Entwurf . . . . . . . . . . . . . . . . 3.3.3 Logischer Entwurf . . . . . . . . . . . . . . . . . . . 3.3.4 Physischer Entwurf . . . . . . . . . . . . . . . . . . . 3.3.5 Weitere Entwurfsschritte . . . . . . . . . . . . . . . . 3.4 Allgemeine Abstraktionskonzepte . . . . . . . . . . . . . . . 3.5 Das Entity-Relationship-Modell . . . . . . . . . . . . . . . . 3.5.1 Entities und Attribute . . . . . . . . . . . . . . . . . 3.5.2 Relationships . . . . . . . . . . . . . . . . . . . . . . 3.5.3 IS-A-Beziehungen . . . . . . . . . . . . . . . . . . . 3.5.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . 3.6 Konzeptioneller Entwurf mit dem ER-Modell . . . . . . . . 3.7 Bibliographische Hinweise und Erg¨anzungen . . . . . . . . . ¨ 3.8 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43 . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

45 46 49 49 51 52 54 55 57 57 58 59 60 61 69 75 80 81 88 90

relationale Datenmodell Relationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datenabh¨angigkeiten. Relationenschemata . . . . . . . . . . . Transformation eines ER-Diagramms in das Relationenmodell Datenbank-Definition mit SQL . . . . . . . . . . . . . . . . . 4.4.1 Datenbankschema-Definition . . . . . . . . . . . . . . 4.4.2 Tabellen-Definition . . . . . . . . . . . . . . . . . . . . 4.4.3 Integrit¨atsbedingungen . . . . . . . . . . . . . . . . . . 4.4.4 Weitere Definitionsaspekte . . . . . . . . . . . . . . . 4.5 Fallstudie Medienhandel . . . . . . . . . . . . . . . . . . . . . 4.6 Bibliographische Hinweise und Erg¨anzungen . . . . . . . . . . ¨ 4.7 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

95 95 98 104 109 110 111 112 114 116 124 126

5 Grundlagen von SQL 5.1 SQL von 1980 bis 2003 . . . . . . . . . . . . . . . . . . . . . . 5.2 Datenbank-Updates . . . . . . . . . . . . . . . . . . . . . . . 5.3 Datenbank-Anfragen . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Einf¨ uhrung . . . . . . . . . . . . . . . . . . . . . . . . 5.3.2 Zur Syntax von SELECT . . . . . . . . . . . . . . . . . 5.3.3 Exkurs in die Relationenalgebra . . . . . . . . . . . . 5.3.4 Semantik von SELECT am Beispiel von RA-Ausdr¨ ucken 5.3.5 Verbund-Operatoren in SQL . . . . . . . . . . . . . . 5.4 Beispiele f¨ ur SQL-Anfragen . . . . . . . . . . . . . . . . . . . 5.4.1 Selektionen und Projektionen . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

127 127 128 130 130 131 134 135 137 140 141

4 Das 4.1 4.2 4.3 4.4

Inhalt

vii . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

142 144 146 148 149 149 153

6 Integrit¨ at in relationalen Datenbanken 6.1 Arten von Integrit¨atsbedingungen . . . . . . . . . . . . . . . . 6.2 Funktionale Abh¨angigkeiten . . . . . . . . . . . . . . . . . . . 6.2.1 Definition. Implikation . . . . . . . . . . . . . . . . . . 6.2.2 Ableitung. Das Membership-Problem . . . . . . . . . . 6.2.3 Anwendungen des Membership-Algorithmus. Schl¨ ussel 6.2.4 (Abh¨angigkeits-) Basen . . . . . . . . . . . . . . . . . 6.2.5 Allgemeine Implikation . . . . . . . . . . . . . . . . . 6.3 Inklusionsabh¨angigkeiten . . . . . . . . . . . . . . . . . . . . . 6.4 Allgemeine Assertions . . . . . . . . . . . . . . . . . . . . . . 6.5 Aktive Integrit¨atskontrolle u ¨ber Trigger . . . . . . . . . . . . 6.6 Bibliographische Hinweise, Erg¨anzungen, Querbez¨ uge . . . . . ¨ 6.7 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

161 161 165 166 169 175 178 181 183 185 188 193 198

7 Relationale Sprachen: Relationenalgebra, Kalku ¨ le, Datalog 7.1 Die Relationenalgebra . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 Relationale Operationen und ihre Rechenregeln . . . . . 7.1.2 Ausdr¨ ucke der Relationenalgebra . . . . . . . . . . . . . 7.1.3 Eigenschaften der Relationenalgebra . . . . . . . . . . . 7.1.4 Algebraische Optimierung . . . . . . . . . . . . . . . . . 7.2 Relationenkalk¨ ule . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.1 Der Relationen-Tupelkalk¨ ul . . . . . . . . . . . . . . . . 7.2.2 Der Relationen-Domainkalk¨ ul . . . . . . . . . . . . . . . 7.3 View-Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Grundlagen von Datalog . . . . . . . . . . . . . . . . . . . . . . 7.4.1 Motivationen . . . . . . . . . . . . . . . . . . . . . . . . 7.4.2 Logik als Anfragesprache . . . . . . . . . . . . . . . . . 7.4.3 Intensionale und extensionale Datenbanken . . . . . . . 7.4.4 Rekursion . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4.5 Integrit¨atsbedingungen . . . . . . . . . . . . . . . . . . . 7.4.6 Datalog-Programme und deren Interpretation . . . . . . 7.4.7 Ausdruckskraft von Datalog . . . . . . . . . . . . . . . . 7.5 Konzepte der Theorie von Anfragesprachen . . . . . . . . . . . 7.5.1 Konjunktive Anfragen . . . . . . . . . . . . . . . . . . . 7.5.2 Vollst¨andigkeit von Anfragesprachen . . . . . . . . . . . 7.5.3 Ausdruckskraft und Komplexit¨at von Anfragesprachen . 7.6 Bibliographische Hinweise und Erg¨anzungen . . . . . . . . . . . ¨ 7.7 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

201 201 202 208 210 212 214 215 220 221 226 226 228 229 230 232 232 235 236 236 237 239 243 246

5.5 5.6 5.7 5.8

5.4.2 Verbundanfragen . . . . . . . . . . . . . . . . . 5.4.3 Aggregatfunktionen und Unteranfragen . . . . 5.4.4 Abschließende Bemerkungen . . . . . . . . . . Rekursive Anfragen . . . . . . . . . . . . . . . . . . . . Bibliographische Hinweise und Erg¨anzungen . . . . . . ¨ Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . Anhang: Beispieltabellen der Fallstudie Medienhandel

. . . . . . .

. . . . . . .

. . . . . . .

viii 8 Qualit¨ atsorientierter Datenbankentwurf 8.1 Universalrelationen und Update-Anomalien 8.2 Zweite, dritte und Boyce-Codd-Normalform 8.3 Dekomposition und Synthese . . . . . . . . 8.4 Mehrwertige und Verbund-Abh¨angigkeiten . 8.5 Vierte und f¨ unfte Normalform . . . . . . . . 8.6 Bibliographische Hinweise und Erg¨anzungen ¨ 8.7 Ubungen . . . . . . . . . . . . . . . . . . . .

Inhalt

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

III Moderne Konzepte: Objekt-Basierung und XML-Dokumente

279

9 Objekt-relationale Datenbanken 9.1 Evolution von Datenmodellen . . . . . . . . . . . . . . . 9.1.1 Grenzen relationaler Datenmodelle . . . . . . . . 9.1.2 H¨ohere Datenmodelle . . . . . . . . . . . . . . . 9.1.3 Daten-, Funktions- und Prozessentwurf . . . . . 9.2 Objekt-Orientierung . . . . . . . . . . . . . . . . . . . . 9.2.1 Das Paradigma . . . . . . . . . . . . . . . . . . . 9.2.2 Objekt-Orientierung und Datenbanken . . . . . . 9.2.3 Unterscheidung von Typen und Klassen . . . . . 9.2.4 Objekt-Orientierung im relationalen Datenmodell 9.3 Datenbankmodellierung mit der UML . . . . . . . . . . 9.3.1 Klassen . . . . . . . . . . . . . . . . . . . . . . . 9.3.2 Assoziationen . . . . . . . . . . . . . . . . . . . . 9.3.3 Aggregationen und Kompositionen . . . . . . . . 9.3.4 Generalisierung und Spezialisierung . . . . . . . 9.3.5 Weitere Modellierungsm¨oglichkeiten . . . . . . . 9.3.6 Fallstudie Medienhandel . . . . . . . . . . . . . . 9.4 Objekt-relationale Definitionskonzepte in SQL . . . . . . 9.4.1 Basisdatentypen und Typkonstruktoren . . . . . 9.4.2 Benutzerdefinierte Typen und Typhierarchien . . 9.4.3 Tabellen . . . . . . . . . . . . . . . . . . . . . . . 9.5 Fallstudie Medienhandel . . . . . . . . . . . . . . . . . . 9.6 SQL-Anfragen an objekt-relationale Datenbanken . . . . 9.7 Bibliographische Hinweise und Erg¨anzungen . . . . . . . ¨ 9.8 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.9 Anhang: Beispieltabellen der Fallstudie Medienhandel . 10 Einfu ¨ hrung in XML 10.1 Elemente, Tags und Attribute . . . . . . . . . . . . . 10.2 Validierung von XML-Dokumenten: DTDs und XML 10.3 Normalisierungsaspekte . . . . . . . . . . . . . . . . 10.4 Verarbeitung von XML-Dokumenten . . . . . . . . . 10.4.1 XPath . . . . . . . . . . . . . . . . . . . . . . 10.4.2 XSLT . . . . . . . . . . . . . . . . . . . . . . 10.5 Bibliographische Hinweise und Erg¨anzungen . . . . .

251 251 253 259 269 273 275 277

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

281 282 282 283 285 288 288 292 295 299 301 303 303 305 305 306 307 310 310 312 315 317 321 326 327 330

. . . . . Schema . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

337 338 345 349 351 352 355 363

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

Inhalt

ix

¨ 10.6 Ubungen . . . . . . . . . . . . . . . . . . . . . . 10.7 Anhang: XML-Spezifikationen f¨ ur die Fallstudie 10.7.1 Document Type Definition . . . . . . . 10.7.2 XML Schema Definition . . . . . . . . . 11 SQL und Programmiersprachen 11.1 Web-Anbindung von Datenbanken . . . . . 11.1.1 Grundlegendes . . . . . . . . . . . . 11.1.2 Scripting . . . . . . . . . . . . . . . 11.1.3 MySQL-Anbindung per PHP . . . . 11.2 Eingebettetes SQL . . . . . . . . . . . . . . 11.2.1 Arten der Einbettung . . . . . . . . 11.2.2 JDBC und SQLJ . . . . . . . . . . . 11.3 Bibliographische Hinweise und Erg¨anzungen ¨ 11.4 Ubungen . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . Medienhandel . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

364 365 365 367

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

375 376 376 378 380 386 386 388 394 394

12 XQuery und SQL/XML 12.1 XQuery . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1.1 Ausdr¨ ucke . . . . . . . . . . . . . . . . . . . . . 12.1.2 FLWOR-Ausdr¨ ucke . . . . . . . . . . . . . . . 12.1.3 Funktionen . . . . . . . . . . . . . . . . . . . . 12.1.4 Update-Operationen . . . . . . . . . . . . . . . 12.2 SQL/XML . . . . . . . . . . . . . . . . . . . . . . . . . 12.2.1 XML-Datentypen . . . . . . . . . . . . . . . . . 12.2.2 Publikations-Funktionen . . . . . . . . . . . . . 12.2.3 XQuery-Funktionen . . . . . . . . . . . . . . . 12.3 SQL/XML-Unterst¨ uzung in IBM DB2 V9 . . . . . . . 12.3.1 Speicherung von XML-Dateien . . . . . . . . . 12.3.2 Anfragen mit SQL/XML . . . . . . . . . . . . 12.3.3 Anfragen mit XQuery . . . . . . . . . . . . . . 12.3.4 Generierung von XML- oder HTML-Strukturen 12.4 Bibliographische Hinweise und Erg¨anzungen . . . . . . ¨ 12.5 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

397 397 398 400 407 408 409 411 413 416 418 420 422 424 424 425 426

IV

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

Datenintegration und ihre Anwendungen

13 Architekturkonzepte fu ¨ r Datenbanksysteme 13.1 Das Client/Server-Konzept . . . . . . . . . . 13.1.1 Anfrageserver . . . . . . . . . . . . . . 13.1.2 Objekt- und Seitenserver . . . . . . . 13.2 Verteilte Datenbanksysteme . . . . . . . . . . 13.2.1 Vor- und Nachteile . . . . . . . . . . . 13.2.2 Klassifikationen . . . . . . . . . . . . . 13.2.3 Homogene Verteilung . . . . . . . . . 13.2.4 Heterogene Verteilung und F¨oderation 13.3 Parallele Datenbanksysteme . . . . . . . . . . 13.4 Bibliographische Hinweise und Erg¨anzungen .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

435 . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

437 438 440 442 444 444 446 448 451 454 458

x

Inhalt ¨ 13.5 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459

14 Datenintegration 14.1 Einf¨ uhrung. Architekturkonzepte . . . . . . ¨ 14.2 Ubersetzer, Integratoren und Koordinatoren 14.3 Integration mittels logischer Sichten . . . . 14.4 Verteilte Objekte und Web Services . . . . 14.5 Bibliographische Hinweise und Erg¨anzungen ¨ 14.6 Ubungen . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

461 461 463 467 473 476 478

15 Data Warehouses (Datenlager) und OLAP 15.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.1.1 Anwendungen und Architektur von Datenlagern . . . . . . 15.1.2 Der ETL-Prozess . . . . . . . . . . . . . . . . . . . . . . . . 15.1.3 Daten-Bereinigung zur Erzielung von Datenqualit¨at . . . . 15.2 Mehrdimensionale Datenmodelle . . . . . . . . . . . . . . . . . . . 15.2.1 Fakten, Maße und Dimensionen . . . . . . . . . . . . . . . . 15.2.2 Sternschemata und Varianten . . . . . . . . . . . . . . . . . 15.2.3 Effiziente Speicherung von Faktentabellen mittels Bitmaps . 15.3 Qualit¨atsorientierter Schemaentwurf f¨ ur Datenlager . . . . . . . . . 15.3.1 Der Entwurfsprozess . . . . . . . . . . . . . . . . . . . . . . 15.3.2 Qualit¨atskriterien . . . . . . . . . . . . . . . . . . . . . . . . 15.3.3 Summierbarkeit und Normalformen . . . . . . . . . . . . . 15.3.4 Selbstwartbarkeit . . . . . . . . . . . . . . . . . . . . . . . . 15.4 Grundlagen des OLAP . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.1 Datenw¨ urfel und OLAP-Operatoren . . . . . . . . . . . . . 15.4.2 Von Vereinigungs- zu W¨ urfel-Anfragen . . . . . . . . . . . . 15.4.3 SQL Roll-Up . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.4 SQL Cube . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.5 SQL Grouping Sets . . . . . . . . . . . . . . . . . . . . . . . 15.5 Bibliographische Hinweise und Erg¨anzungen . . . . . . . . . . . . . ¨ 15.6 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

479 479 481 484 485 486 486 488 490 493 494 497 497 499 502 503 506 510 513 516 517 518

16 Grundlagen des Data Mining 16.1 Einf¨ uhrung . . . . . . . . . . . . . . . . . . . . . . . . . . 16.2 Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . 16.3 Cluster-Bildung . . . . . . . . . . . . . . . . . . . . . . . . 16.4 Assoziationsanalyse . . . . . . . . . . . . . . . . . . . . . . 16.4.1 H¨aufige Mengen und Assoziationsregeln . . . . . . 16.4.2 Der Apriori-Algorithmus . . . . . . . . . . . . . . . 16.4.3 Verbesserungspotenziale beim Apriori-Algorithmus 16.4.4 Alternativen zum Apriori-Algorithmus . . . . . . . 16.4.5 Interessantheitsmaße . . . . . . . . . . . . . . . . . 16.5 Sequenzanalyse . . . . . . . . . . . . . . . . . . . . . . . . 16.6 Web-Mining . . . . . . . . . . . . . . . . . . . . . . . . . . 16.6.1 Web-Struktur-Mining . . . . . . . . . . . . . . . . 16.6.2 Web-Inhalts-Mining . . . . . . . . . . . . . . . . . 16.6.3 Web-Log-Mining . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

523 524 527 529 532 532 535 537 539 543 544 548 548 551 551

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

Inhalt

xi

16.7 Bibliographische Hinweise und Erg¨anzungen . . . . . . . . . . . . . . . 552 ¨ 16.8 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554

V

Datenbanksystemtechnik

555

17 Interne Datenbank- und Speicherorganisation 17.1 Plattenspeicher . . . . . . . . . . . . . . . . . . . . . . . . 17.1.1 Bl¨ocke und Blockzugriffe . . . . . . . . . . . . . . . 17.1.2 RAID-Architekturen . . . . . . . . . . . . . . . . . 17.2 Pufferverwaltung . . . . . . . . . . . . . . . . . . . . . . . 17.3 Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.3.1 Sequentielle Files . . . . . . . . . . . . . . . . . . . 17.3.2 Effizienter Filezugriff durch Indexierung . . . . . . 17.4 Spezielle Indexstrukturen . . . . . . . . . . . . . . . . . . 17.4.1 ISAM . . . . . . . . . . . . . . . . . . . . . . . . . 17.4.2 Baumstrukturen f¨ ur eindimensionale Punktdaten . 17.4.3 Baumstrukturen f¨ ur mehrdimensionale Punktdaten 17.4.4 Hash-Organisationsformen . . . . . . . . . . . . . . 17.5 Beispiel: Speicherorganisation bei DB2 . . . . . . . . . . . 17.6 Speicherung und Indexierung von XML-Dokumenten . . . 17.6.1 Speicherungsoptionen . . . . . . . . . . . . . . . . 17.6.2 Indexierung . . . . . . . . . . . . . . . . . . . . . . 17.7 Bibliographische Hinweise und Erg¨anzungen . . . . . . . . ¨ 17.8 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

557 557 559 560 563 564 565 567 568 568 569 575 581 584 587 587 588 593 595

18 Verarbeitung und Optimierung von Anfragen ¨ 18.1 Anfrageverarbeitung im Uberblick . . . . . . . 18.2 Anfrage-Optimierung . . . . . . . . . . . . . . . 18.2.1 Ziele und Ans¨atze . . . . . . . . . . . . 18.2.2 High-Level-Optimierung . . . . . . . . . 18.2.3 Low-Level-Optimierung . . . . . . . . . 18.3 Implementierungstechniken f¨ ur den Verbund . . 18.3.1 Nested-Loop-Join . . . . . . . . . . . . . 18.3.2 Sort-Merge-Join . . . . . . . . . . . . . 18.3.3 Hash-Join . . . . . . . . . . . . . . . . . 18.4 Spezielle QEP-Parameter . . . . . . . . . . . . 18.5 Anfrage-Prozessoren . . . . . . . . . . . . . . . 18.6 Bibliographische Hinweise und Erg¨anzungen . . ¨ 18.7 Ubungen . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

597 598 600 600 601 606 607 608 608 609 612 615 617 618

19 Physischer Datenbankentwurf und Tuning 19.1 Grundlagen des physischen Datenbankentwurfs . . . 19.2 Fragmentierung und Replikation bei Datenverteilung 19.3 Datenbank-Tuning . . . . . . . . . . . . . . . . . . . 19.3.1 Grundlegende Prinzipien . . . . . . . . . . . . 19.3.2 Tuning von Indexen . . . . . . . . . . . . . . 19.3.3 Tuning in relationalen Systemen . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

621 621 624 626 627 629 629

. . . . . . . . . . . . .

. . . . . . . . . . . . .

xii

Inhalt 19.4 19.5 19.6

Datenbank-Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . 630 Bibliographische Hinweise und Erg¨anzungen . . . . . . . . . . . . . . . 633 ¨ Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634

20 Transaktionen und Serialisierbarkeit 20.1 Das Transaktionskonzept . . . . . . . . . . 20.2 Beispiele f¨ ur Synchronisationsprobleme . . . 20.3 Das ACID-Prinzip . . . . . . . . . . . . . . 20.4 Das Read-Write-Modell f¨ ur Transaktionen . 20.5 Serialisierbarkeit von Schedules . . . . . . . 20.5.1 Schedules . . . . . . . . . . . . . . . 20.5.2 View-Serialisierbarkeit . . . . . . . . 20.5.3 Konflikt-Serialisierbarkeit . . . . . . 20.5.4 Commit-Serialisierbarkeit . . . . . . 20.6 Fehlersicherheit von Schedules . . . . . . . . 20.6.1 Motivation . . . . . . . . . . . . . . 20.6.2 R¨ ucksetzbarkeit . . . . . . . . . . . . 20.6.3 Vermeidung kaskadierender Aborts . 20.6.4 Striktheit . . . . . . . . . . . . . . . 20.7 Korrektheit von Schedules . . . . . . . . . . 20.8 Bibliographische Hinweise und Erg¨anzungen ¨ 20.9 Ubungen . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

637 638 641 643 644 647 647 651 652 657 659 659 660 661 662 663 663 664

21 Concurrency Control ¨ 21.1 Uberlegungen zum Scheduler-Entwurf . . . . . . . . 21.2 Sperrende Scheduler . . . . . . . . . . . . . . . . . . 21.2.1 Einf¨ uhrung . . . . . . . . . . . . . . . . . . . 21.2.2 Das 2-Phasen-Sperrprotokoll . . . . . . . . . 21.2.3 Varianten des 2-Phasen-Sperrprotokolls . . . 21.2.4 Das MGL-Protokoll . . . . . . . . . . . . . . 21.2.5 Das TL-Protokoll . . . . . . . . . . . . . . . . 21.2.6 Tuning in Gegenwart sperrender Scheduler . 21.3 Nicht sperrendes Timestamp-Ordering . . . . . . . . 21.4 Concurrency Control auf h¨oherer Abstraktionsebene 21.5 Bibliographische Hinweise und Erg¨anzungen . . . . . ¨ 21.6 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

667 667 670 670 672 677 679 682 684 689 690 694 695

22 Grundlagen der Crash Recovery 22.1 Einf¨ uhrung . . . . . . . . . . . . . . . . 22.2 Organisation eines Data-Managers . . . 22.3 Der Recovery-Manager . . . . . . . . . . 22.4 Ein Undo/Redo-Protokoll . . . . . . . . 22.5 Alternativen zum Undo/Redo-Protokoll 22.6 Recovery-Tuning . . . . . . . . . . . . . 22.7 Bibliographische Hinweise . . . . . . . . ¨ 22.8 Ubungen . . . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

697 697 699 701 705 707 708 709 709

. . . . . . . .

. . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

Inhalt

xiii

23 Verteilte Transaktionsverarbeitung 23.1 Homogene Verteilung . . . . . . . . . . . . . . . . . . 23.1.1 Verteilte Transaktionen und Schedules . . . . 23.1.2 Verteiltes Concurrency Control . . . . . . . . 23.1.3 Verteilte Recovery-Protokolle . . . . . . . . . 23.1.4 Transaktionen auf replikativen Datenbanken . 23.2 Heterogene Verteilung. System-F¨oderationen . . . . 23.2.1 Einf¨ uhrung . . . . . . . . . . . . . . . . . . . 23.2.2 Ein MDBS-Modell . . . . . . . . . . . . . . . 23.2.3 Transaktionen und Schedules in einem MDBS 23.2.4 Globale Serialisierbarkeit . . . . . . . . . . . 23.2.5 Gew¨ahrleistung globaler Serialisierbarkeit . . 23.3 Bibliographische Hinweise . . . . . . . . . . . . . . . ¨ 23.4 Ubungen . . . . . . . . . . . . . . . . . . . . . . . . .

VI

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

Neuere Entwicklungen

24 Ausblicke 24.1 Temporale Datenbanken . . . . . . . . . . . 24.2 Probabilistische Datenbanken . . . . . . . . 24.3 R¨aumliche Daten und GIS . . . . . . . . . . 24.4 Datenstr¨ome (Data Streams) . . . . . . . . 24.5 Data Provenance . . . . . . . . . . . . . . . 24.6 Column Stores . . . . . . . . . . . . . . . . 24.7 Bibliographische Hinweise und Erg¨anzungen

711 711 711 715 720 728 733 734 734 736 739 742 745 746

749 . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

751 751 755 757 760 762 764 764

Literaturverzeichnis

767

Index

808

Vorwort zur fu ¨ nften Auflage Die f¨ unfte Auflage hat etwas l¨anger auf sich warten lassen, als urspr¨ unglich geplant, aber daf¨ ur ist sie a¨hnlich runderneuert wie seinerzeit die dritte. Kern¨ uberlegung dieser Auflage ist, dass Datenbanksysteme inzwischen nicht mehr nur Standardsoftware auf praktisch allen verf¨ ugbaren Rechnerplattformen sind, sondern dass sie dar¨ uber hinaus wie Rechnerhardware auch in Anwendungen immer unsichtbarer werden. Wer macht sich schon klar, dass elektronische Bank- oder B¨orsengesch¨afte, das Ersteigern von Dingen im Internet oder die Schn¨ appchenjagd nach Billigfl¨ ugen im Web ohne Datenbanken kaum realisierbar w¨are? Wir haben es also inzwischen mit einer (Software-) Technik zu tun, die zu einer Commodity“ geworden ist und fast immer als Dienst“ ” ” im Hintergrund mitspielt. Daneben gibt es nat¨ urlich nach wie vor die klassischen“ ” Datenbankanwendungen, etwa im Großrechnerbereich, die von Administratoren betreut werden und die von Programmierern in Anwendungen wie Lohnbuchaltung oder Kontenverwaltung integriert werden. Aber auch hier hat sich in den letzten Jahren ein Wandel vollzogen: Der Datenbankadministrator ist nicht mehr der hochspezialisierte Kenner eines einzelnen Systems, sondern er oder sie muss heute im Allgemeinen mit den Systemen unterschiedlicher Hersteller gleich gut umgehen k¨onnen. Ferner werden auch klassische Systemlandschaften mit immer neuen Aufgaben konfrontiert; man denke hier nur an Data Warehouses, die aus heutigen F¨ uhrungsinformationssystemen nicht mehr wegzudenken sind, oder an Service-orientierte Architekturen. Ein Datenbanklehrbuch muss dieser sich ver¨andernden Welt gerecht werden und sollte gleichzeitig nicht den Blick f¨ ur die Grundlagen des Gebiets verlieren. ¨ Aus diesen Uberlegungen und Beobachtungen heraus ist die Neuauflage entstanden. Ein großer Unterschied zur vierten Auflage ist eine v¨ollige Abkehr von rein objektorientierten Systemen, die sich auf dem Markt als nicht generell tragf¨ahig erwiesen haben; die entsprechenden Abschnitte wurden ersatzlos gestrichen. Geblieben ist die Kombination aus relationalen und objekt-orientierten Konzepten, die als objektrelationale Datenbanken ihre Position gefunden haben und auch in die aktuelle Version des SQL-Standards eingeflossen sind. Dieser Standard wird hier in seinen 1999er und 2003er Versionen zu Grunde gelegt, allerdings muss sich der Leser vergegenw¨artigen, dass das Wort Standard“ mit einer gewissen Vorsicht zu genießen ist: Da die ” Verabschiedung neuer SQL-Versionen regelm¨aßig erheblich l¨anger dauert als zun¨achst geplant, warten die Hersteller im Allgemeinen nicht ab und statten ihre Systeme mit Sprachen aus, die bestenfalls an den Standardisierungsaktivit¨aten orientiert sind. Es darf daher nicht verwundern, dass kaum ein kommerzielles System den Standard exakt einh¨alt; insofern sind die SQL-Beispiele in diesem Buch mit besonderer Aufmerksamkeit zu studieren und ggfs. genau mit der Sprachversion eines gegebenen Systems zu vergleichen; die dabei vermutlich beobachtbaren Diskrepanzen sind unvermeidbar.

xx

Vorwort zur f¨ unften Auflage

Ganz neu ist die Behandlung von XML, das im Datenbankbereich (wie in vielen anderen Bereichen) in den letzten Jahren immer weiter um sich gegriffen hat. Ich habe versucht, dies angemessen in die Darstellung zu integrieren, und zwar durch die sukzessive Behandlung von Datenmodellierung und von Anfragesprachen f¨ ur und um XML. Dabei ist insbesondere die Integration mit (objekt-) relationalen Systemen von Bedeutung, welche an mehreren Stellen nachvollzogen wird. Sp¨atestens in diesem Zusammenhang kommt hoffentlich auch mein weitgehend durchgehendes Beispiel des Medienhandels zum Tragen, welches von Beginn des Textes an immer wieder zu Illustrationszwecken herangezogen (und dabei gelegentlich auch abgewandelt) wird. Ein drittes Merkmal der neuen Auflage ist die st¨arkere Bedeutung, die jetzt Data Warehouses (Datenlagern) beigemessen wird. W¨ahrend dieses Thema vor acht Jahren von Anwendungen gerade erst entdeckt wurde und daher noch als eine Art Ausblick“ behandelt werden konnte, ist es mittlerweile fest in Anwendungen inte” griert und sogar von hoher strategischer wie taktischer Bedeutung. Große Datenmengen fallen heute u ¨berall an, nicht nur im elektronischen Handel, und man m¨ochte zunehmend hieraus Kapital schlagen. Data Warehouses sind dazu das Hilfsmittel mit den Prim¨aranwendungen OLAP (Online Analytical Processing) und Data Mining. Diesen Themen wird daher in der Neuauflage angemessen breiter Raum gewidmet. Nach wie vor erhebt das Buch nicht den Anspruch, dass der gesamte Inhalt in einer vierst¨ undigen Datenbankvorlesung behandelt werden k¨onnte. Es stellt vielmehr die Themen zusammen, die man am Ende eines einschl¨agigen Studiums (insbesondere der Informatik, aber auch verschiedener Bindestrich-Informatiken“) kennen oder von ” deren Existenz man zumindest geh¨ort haben sollte (gem¨aß dem Wahlspruch meines fr¨ uheren Betriebssysteme-Lehrers Professor Dieter Haupt: Wissen ist wissen, wo es ” steht“). Von daher erspare ich mir, hier Anleitungen zum Durcharbeiten des Textes oder m¨ogliche Abarbeitungspfade des Stoffes zu geben; ich u ¨berlasse dies den Dozenten bzw. den Lesern. Allerdings erhebt der Text nach wie vor den Anspruch, seine Leserschaft an vielen Stellen bis an den aktuellen Stand der Forschung heranzuf¨ uhren und insbesondere durch viele Literaturhinweise einen tieferen Einstieg auch in Forschungsthemen zu erleichtern. An dieser Auflage habe ich dank moderner Technik an den unterschiedlichsten Orten auf dieser Welt arbeiten k¨onnen, von denen ich hier einige erw¨ahnen will: in meinem h¨auslichen Gievenbecker Arbeitszimmer, in meinem M¨ unsteraner B¨ uro auf dem Leonardo-Campus, im Center Park Het Heijderbos in den Niederlanden, im Grand Cevahir Hotel in Istanbul, im Hotel de l’Alma in Paris, im Tivoli Hotel in Coimbra, Portugal, in einem Condo am Strand von Del Mar sowie auf dem Campus der University of California, San Diego, in Kalifornien, in den Hotels Elia Latchi und Paphos Amathus auf Zypern, im Informatikzentrum Schloß Dagstuhl, im Renaissance Hotel in Chicago, in den Ocean Pacific Appartments in Hahei, Coromandel Peninsula sowie in der Amity Lodge in Queenstown, Neuseeland, im Carlton Crest Hotel in Sydney sowie im The Lakes Resort & Spa in Cairns, Australien, in diversen LufthansaLounges am Frankfurter Flughafen, an Bord von Fl¨ ugen u.a. nach San Francisco, Seattle und Seoul, im Palace Hotel in San Francisco oder in der Fairmont Jasper Park Lodge in Kanada. Ein großer Teil der Arbeit an dieser Auflage hat im Department of Management Systems der Waikato Management School in Hamilton, Neuseeland w¨ahrend meines Sabbaticals im Wintersemester 2006/7 stattgefunden.

Vorwort zur f¨ unften Auflage

xxi

Nat¨ urlich gibt es eine Web-Seite zum Buch, die an der Universit¨at M¨ unster unter http://dbms.uni-muenster.de zu erreichen ist; mich selbst erreichen geneigte Leserinnen und Leser unter [email protected], und ich freue mich immer u ¨ber Feedback, Anregungen oder Hinweise auf Tippfehler. Auf der Web-Seite steht ein Foliensatz bereit; ggfs. wird hier¨ uber auch Weiteres kommuniziert. Meiner Lektorin, Frau Dr. Margit Roth, m¨ochte ich an dieser Stelle f¨ ur ihre Geduld danken, die sie diesem Projekt entgegengebracht hat; immerhin haben wir mehrere Jahre u ¨ber diese Neuauflage geredet. Naturgem¨aß sind an dieser Stelle noch weitere Danksagungen f¨allig: Stefan Reimers, Stephan Hagemann, Gunnar Thies und Jens Lechtenb¨orger haben als meine Korrektoren fungiert; ihnen sind etliche inhaltliche Hinweise zu danken sowie die Tatsache, dass viele Tippfehler (selbst solche aus ¨alteren Auflagen) eliminiert werden konnten. Dem Lektorat des Verlags, insbesondere Frau Roth verdanke ich Nachhilfe in der aktuellen Version der deutschen Recht¨ schreibung. Andreas Simon hat bei der umfassenden Uberarbeitung der Abbildungen geholfen, Thimo Buchheister, Constantin Erckenbrecht und Stephan Schneider bei der Korrektur des Literaturverzeichnisses. Und last, not least: Die Widmung aus der zweiten Auflage, meine Damen, bleibt nat¨ urlich weiterhin g¨ ultig ... M¨ unster, im Januar 2008 G.V.