Herrmann Sauer Relationale Datenbanken Theorie und Praxis ADDISON-WESLEY PUBLISHING COMPANY Bonn • München • Reading, Massachusetts • Menlo Park, California • New York Don Mills, Ontario • Wokingham, England • Amsterdam • Sydney • Singapore Tokyo • Madrid • San Juan Inhaltsverzeichnis Einleitung Zum Inhalt dieses Buches 1 Einführung in Datenbank-Management-Systeme 1.1 1.2 1.3 1.4 Von der Realwelt zum Modell Vom Modell zur Datenbank Das Dreischichtenmodell nach ANSI/SPARC Datenbank vs. Dateisystem 2 Relationale Grundlagen 7 9 12 13 17 2.1 Das Relationale Modell 19 2.2 Relationale Objekte 20 2.2.1 Domäne 21 2.2.2 Relation/Degree/Attribut/Tupel 24 2.2.3 Candidate-Key 24 2.2.4 Primary-Key, Alternate-Key, Foreign-Key 25 2.3 Relationale Integritätsregeln " • 27 2.3.1 Entity-Integrität 28 2.3.2 Referenzielle-Integrität 28 2.4 Relationale Algebra 30 2J4.1 RESTRICTION ./ x^30 2.4.2 PROJECTION ,"' 30 2.4.3 PRODUCT 31 2.4.4 UNION ^ 31 2.4.5 INTERSECTION .-^ 32 2.4.6 DIFFERENCE 32 2.4.7 JOIN 32 2.4.8 DIVISION • 36 2.4.9 Anwendungsbeispiele der relationalen Algebra 36 2.4.10 Degree - und Kardinalitätsveränderungen durch relationale Operatoren 38 VIII Inhaltsverzeichnis 3 Einführung in SQL 39 3.1 Etwas SQL-Geschichte 3.2 Der SQL-Markt 3.3 Einführung 3.3.1 SQL - Befehlsübersicht 3.3.2 EBNF als Hilfsmittel zur Sprachbeschreibung 3.4 DDL Daten-Definitions-Anweisungen 3.4.1 CREATE TABLE - Tabellen erstellen 3.4.2 GRANT - Benutzer berechtigen 3.4.3 CREATE VIEW - Definieren einer logischen Tabelle 3.4.3.1 Einschränkungen bei der Definition von VIEWs 3.4.3.2 Einschränkungen bezüglich Updates auf VIEWs 3.4.3.3 Anwendungsmöglichkeiten von VIEWs 3.5 DML Daten-Manipulations-Anweisungen 3.5.1 Die SELECT-Anweisung (Daten aus der Datenbank lesen) 3.5.1.1 SELECT-Spezifikation 3.5.1.2 Spalten-Ausdruck 3.5.1.3 Funktionen 3.5.1.4 Tabellen-Ausdruck 3.5.1.5 Such-Bedingung 3.5.1.6 DasATL-OR-ANY-Prädikat 3.5.1.7 DasEXISTS-Prädikat 3.5.2 Die DELETE-Anweisung (Zeilen löschen) 3.5.3 Die UPDATE-Anweisung (Zeilen ändern) 3.5.4 Die INSERT-Anweisung (Zeilen einfügen) 3.6 SQL-Kritik 42 43 44 45 46 47 47 48 50 51 52 53 54 54 55 56 58 59 61 62 63 64 65 66 66 4 Datenbankinternas und Performance 69 4.1 Der physische Zugriff auf Daten ^ 4.2 Adressierung mit der Record-ID 4.3 Speicherstrukturen 4.3.1 Der Binär-Baum ^ 4.3.2 Der B-Baum ^ 4.3.3 Hashing " 4.3.4 Heap 4.3.5 Zusammenfassung 4.4 Die Abarbeitung von SQL-Statements 4.4.1 Der semantische Level einer Programmiersprache 4.4.2 Umsetzung von SQL-Ausdrücken in relationale Algebra 4.4.3 Optimierung durch frühzeitige Restriktion 7\s 74 75 75 82 82 85 86 86 87 90 92 Inhaltsverzeichnis IX 4.4.4 Optimierung durch JOIN 4.4.5 Realisierung des JOINJOIN-Realisierung 4.4.6 Der Query-Optimierer 4.4.7 Testen der Qualität des Query-Optimierers 4.5 Datenbank-Rechner 4.6 Zusammenfassung 94 95 100 103 106 112 5 Recovery und Parallelverarbeitung 113 5.1 Recovery 5.1.1 Logging 5.1.2 Transaktion 5.1.3 Transaktionsabrüche 5.1.4 ROLLBACK (Undo) Logik 5.2 Parallelverarbeitung 5.2.1 Datenbank Lock (Sperrung) 5.2.2 Exklusive Locks 5.2.3 Deadlocks 5.2.4 Shared Locks 5.3 Transaktionsverarbeitung unter SQL 5.4 Performance in der,Multiuser Umgebung 115 116 116 119 120 120 122 123 126 129 131 133 6 Verteilte Datenbanken 135 6.1 6.2 6.3 6.4 6.5 6.6 6.7 Was versteht man unter einem VDBMS Die zwölf Regeln von C.J. Date; Die speziellen Anforderungen an den Optimierer im VDBMS Transaktionsverwaltung im VDBMS Synchronisation im VDBMS Recovery im VDBMS Aktuelle Produkte / 7 Datenbank-Design ' 7.1 Normalisierung 7.1.1 Normalisierungsgründe 7.1.2 Abhängigkeiten von Attributen 7.1.3 Erste Normalform 7.1.4 Zweite Normalform 7.1.5 Dritte Normalform 7.1.6 Boyce/Codd (BCNF) Normalform 7.1.7 Vierte Normalform ^ " - 138 140 145 151 152 153 153 -^ 155 158 159 161 163 164 165 166 166 X Inhaltsverzeichnis 7.1.8 Fünfte Normalform , 7.2 Entity Relationenship Modell (ER-Modell) 7.2.1 Entity Relationenship Diagramme 7.2.2 Degree eines Relationenship (Grad einer Beziehung) 7.2.3 Mitgliedsklassen 7.2.4 Auflösung des ER-Modells in Relationen 7.3 Zusammenfassung 167 169 170 171 172 174 179 8 Die zwölf Regeln zur Bestimmung der Relationalität eines DBMS 181 8.1 Einführung 8.2 Die zwölf RDBMS Regeln 8.3 Schlußfolgerung 183 184 192 9 Datenbankauswahl 193 9.1 9.2 9.3 9.4 9.5 9.6 196 197 198 200 209 209 Allgemeine Vorgehensweise K.O.-Kriterien Strategische Kriterien, die sich nur schwer rein technisch beurteilen lassen Technische Kriterien Gewichtung des Anforderungskatalogs Ermitteln der Funktionalität eines DBMS Anhänge 211 A B 211 221 227 Glossar Literaturverzeichnis Index