Andreas Heuer Gunter Saake Datenbanken Konzepte und Sprachen Technische Hochschule Darmstadt FACHBEREICH INFORMATIK B 1 B L I O T H E K Inventar-Nr.. Sachgebiete : n.'.-f-. Standort: An International Thomson Publishing Company Bonn • Albany • Belmont • Boston • Cincinnati • Detroit • Johannesburg • London Madrid • Melbourne • Mexico City • New York • Paris • Singapore • Tokyo • Toronto THOMSON Inhaltsverzeichnis Vorwort v 1 Grundlegende Konzepte 1.1 Motivation und Historie 1.2 Komponenten und Funktionen 1.2.1 Prinzipien und Aufgaben 1.2.2 Aufbau und Funktionen eines Datenbanksystems 1.2.3 Einsatzgebiete, Grenzen und Entwicklungstendenzen . . . 1.2.4 Wann kommt was? 1.3 Beispielanwendung 1.4 Vertiefende Literatur 1.5 Übungsaufgaben 1 1 6 6 9 18 20 21 23 23 2 ; Architekturen von Datenbanksystemen 2.1 Schema-Architektur und Datenunabhängigkeit ߣ 2.2 System-Architekturen 2.2.1 ANSI-SPARC-Architektur 2.2.2 Fünf-Schichten-Architektur . )£ 2.2.3 Konkrete System-Architekturen 2.3 Anwendungsarchitekturen 2.4 Vertiefende Literatur 2.5 Übungsaufgaben 25 26 31 31 33 35 41 44 44 3 Datenbankmodelle 3.1 Grundlagen von Datenbankmodellen 3.2 Entity-Relationship-Modelle . .)C 3.2.1 Grundkonzepte des klassischen ER-Modells 'K. 3.2.2 Weitere Konzepte im Entity-Relationship-Modell ,yC. . . . 3.2.3 Erweiterungen des ER-Modells um höhere Konzepte . . . 3.2.4 Das EER-Modell — ein erweitertes ER-Modell J{ 3.2.5 Vergleich zu anderen erweiterten ER-Modellen .$/ 47 49 54 54 62 71 76 89 XI X * 3.2.6 Zusammenfassung und laufendes Beispiel 3.3 Relationenmodell 3.3.1 Schemata und Instanzen 3.3.2 Integritätsbedingungen 3.3.3 Basisoperationen der Relationenalgebra 3.4 Netzwerkmodell und hierarchisches Modell 3.4.1 Das Netzwerkmodell 3.4.2 Das hierarchische Modell 3.5 Erweiterte relationale und semantische Modelle 3.6 Objektorientierte Modelle inkl. ODMG-93 3.6.1 Konzepte objektorientierter Datenbanken 3.6.2 Ein objektorientiertes Datenbankmodell 3.6.3 Der ODMG-93-Standard 3.7 Einordnung sonstiger Datenbankmodelle 3.8 Vertiefende Literatur 3.9 Übungsaufgaben 91 93 93 97 101 105 105 109 110 114 114 119 125 128 129 130 Datenbankentwurf und-Definition 4.1 Entwurfsaufgabe 4.2 Phasenmodell 4.2.1 Anforderungsanalyse 4.2.2 Konzeptioneller Entwurf 4.2.3 Verteilungsentwurf 4.2.4 Logischer Entwurf 4.2.5 Datendefinition 4.2.6 Physischer Entwurf 4.2.7 Implementierung und Wartung 4.2.8 Objektorientierte Entwurfsmethoden 4.2.9 Phasenbegleitende Methoden 4.3 Konzeptioneller Entwurf 4.3.1 Konzeptionelles Schema 4.3.2 Objektschicht 4.3.3 Datenschicht 4.3.4 Entwicklungsschicht 4.3.5 Aktionsschicht 4.3.6 Modellierung von Anwendungsprozessen 4.4 ER-Abbildung auf andere Datenbankmodelle 4.4.1 Abbildung auf das relationale Modell 4.4.2 Abbildung auf das Netzwerkmodell 4.4.3 Abbildung auf das hierarchische Modell 4.4.4 Abbildung auf neuere Datenmodelle 4.5 Datendefinitionssprachen 4.5.1 Relationales Modell: SQL-DDL 133 133 135 137 139 141 142 143 143 144 144 145 145 146 147 148 150 152 153 154 156 165 166 168 169 169 Inhaltsverzeichnis 4.5.2 Netzwerkmodell: CODASYL-DDL 4.5.3 Hierarchisches Modell: IMS-DDL 4.5.4 Objektorientiertes Modell: ODL 4.6 Vertiefende Literatur 4.7 Übungsaufgaben Relationaler Datenbankentwurf 5.1 Funktionale Abhängigkeiten 5.2 Schema-Eigenschaften 5.2.1 Update-Anomalien 5.2.2 Normalformen ^_-._v =_.= . •• 5.2.3 Minimalität . . . . . . "..'"'."7~ 5.3 Transformationseigenschaften 5.3.1 Abhängigkeitstreue 5.3.2 Verbundtreue 5.4 Entwurfsverfahren 5.4.1 Ziele 5.4.2 Dekompositionsverfahren 5.4.3 Syntheseverfahren 5.4.4 Verfeinerung des ER-Datenbankentwurfs 5.5 Mehrwertige Abhängigkeiten 5.5.1 Grundlagen 5.5.2 Schema-Eigenschaften 5.5.3 Transformationseigenschaften 5.6 Weitere Abhängigkeiten und Verfahren 5.6.1 Verbund-und Inklusionsabhängigkeiten 5.6.2 Weitere relationale Entwurfsverfahren 5.7 Vertiefende Literatur 5.8 Übungsaufgaben 179 180 182 183 184 187 188 194 194 195 ".'.'. . . 201 201 202 203 205 206 208 210 212 213 213 215 216 216 217 218 219 220 Grundlagen von Anfragen und Änderungen 223 6.1 Kriterien für Anfragesprachen 224 6.2 Anfragealgebren 226 6.2.1 Konzepte von Anfragealgebren 226 6.2.2 Relationenalgebra 227 6.2.3 NF2-Algebra 237 6.2.4 Andere Algebra-Erweiterungen 240 6.3 Anfrage-Kalküle 242 6.3.1 Ein allgemeiner Kalkül 242 6.3.2 Bereichskalkül. 245 6.3.3 Tupelkalkül 251 6.3.4 Kalküle für andere Datenmodelle und Erweiterungen . . . 253 6.4 Änderungsoperationen 256 6.4.1 Allgemeine Grundprinzipien 6.4.2 Relationale Änderungsoperationen 6.5 Vertiefende Literatur 6.6 Übungsaufgaben Relationale Datenbanksprachen 7.1 SQL-Kern 7.1.1 Überblick über SQL-Klauseln 7.1.2 Die from-Klausel 7.1.3 Die select-Klausel 7.1.4 Die where-Klausel 7.1.5 Schachtelung von Anfragen 7.1.6 Mengenoperationen 7.1.7 Mächtigkeit des SQL-Kerns 7.2 Weitere Sprachkonstrukte von SQL 7.2.1 Operationen auf Wertebereichen 7.2.2 Aggregatfunktionen 7.2.3 Diegroup by-und having-Klauseln 7.2.4 Quantoren und Mengenvergleiche 7.2.5 Einsatz des Selbst-Verbunds 7.2.6 Die order by-Klausel 7.2.7 Behandlung von Nullwerten 7.2.8 Änderungs-Operationen 7.3 SQL-Versionen 7.3.1 Geschichte von SQL 7.3.2 SEQUEL2 7.3.3 Überblick über SQL-Normen -. 7.4 QUELundQBE , 7.4.1 Die Sprache QUEL 7.4.2 Die Sprache QBE 7.4.3 Andere graphische Anfragesprachen 7.5 Grenzen und Erweiterungen 7.5.1 Grenzen relationaler Anfragesprachen 7.5.2 Schemaunabhängige Anfragesprachen 7.5.3 Regelbasierte Anfragesprachen 7.5.4 SQL3 7.5.5 SQL-Versionen für höhere Datenmodelle 7.5.6 Objektorientierte Anfragesprachen 7.6 Vertiefende Literatur 7.7 Übungsaufgaben r 256 257 258 258 263 265 265 267 271 273 277 281 284 285 285 286 289 291 292 294 294 296 301 302 302 303 307 307 309 319 319 319 321 324 .327 328 330 334 334 Inhaltsverzeichnis 8 Datenbank- Anwendungsprogrammierung 337 8.1 Navigierende Ansätze 338 8.1.1 Datenmanipulation im Netzwerkmodell 338 8.1.2 Datenmanipulation im hierarchischen Modell 342 8.2 Einbettung von SQL 343 8.2.1 Einbettungstechniken 344 8.2.2 Das Cursor-Konzept 345 8.2.3 Statische Einbettung: Embedded SQL 347 8.2.4 Dynamische Einbettung: Dynamic SQL 354 8.3 Weitere Ansätze 355 8.3.1 Prozedurale SQL-Erweiterungen 355 8.3.2 Gespeicherte Prozeduren 360 8.3.3 4GL: DB-Sprachen der vierten Generation 362 8.3.4 Datenbankprogrammiersprachen 363 8.3.5 Persistente (objektorientierte) Programmiersprachen . . . 364 8.4 Vertiefende Literatur 367 8.5 Übungsaufgaben 368 9 Sichten, Datenschutz, Integrität und Trigger 9.1 Sichten 9.1.1 Motivation und Begriffsbildung 9.1.2 Problemklassen anhand relationaler Sichten 9.1.3 Besonderheiten der Behandlung von Sichten in SQL . . . 9.2 Datenschutz und Zugriffskontrolle 9.2.1 Rechtevergabe in Datenbanksystemen 9.2.2 Statistische Datenbanken 9.3 Integritätsbedingungen und Trigger 9.3.1 Transaktionen und Integritätsüberwachung 9.3.2 Architekturen zur Integritätssicherung 9.3.3 Integritätsbedingungen in SQL 9.3.4 Klassifikation allgemeiner Integritätsbedingungen . . . . 9.3.5 Integritätsregeln . 9.3.6 Trigger und aktive Datenbanken 9.3.7 Methoden der Integritätssicherung 9.4 Vertiefende Literatur 9.5 Übungsaufgaben . . . 369 369 370 374 381 384 384 388 389 390 391 396 398 401 406 413 416 417 10 Weitere Komponenten und Aufgaben 10.1 Transaktionsverwaltung 10.2 Auswertung und Optimierung 10.3 Dateiorganisation und Zugriffspfade 10.4 Wiederherstellung und Datensicherheit 10.5 Datenwörterbuch und Katalog 421 421 429 433 436 439 X 10.6 Vertiefende Literatur 440 11 Weitergehende Ansätze 441 11.1 Erweiterte System-Architekturen 442 11.1.1 Client/Server-Architekturen 442 11.1.2 Datenbank-Kernsysteme und Datenbank-Generatoren . . 443 11.1.3 Verteilte Datenbanken 444 11.1.4 Heterogene Datenbanken 445 11.1.5 Interoperable und föderierte Datenbanken 446 11.2 Erweiterte Datenbankmodelle 447 11.2.1 Erweiterbare Datenbanksysteme 448 11.2.2 Objektorientierte Datenbanksysteme 449 11.3 Erweiterte Sprachschnittstellen 450 11.3.1 Deduktive Datenbanken 450 11.3.2 Wissensbanken 450 11.4 Spezielle Datenbank-Anwendungen 451 11.5 Vertiefende Literatur 453 A Laufendes Beispiel A.l ER-Modellierung A.2 Relationale Repräsentation A.2.1 Repräsentation der Entity-Typen A.2.2 Repräsentation der Beziehungstypen 457 457 460 460 462 B Verzeichnis der Abkürzungen 463 Verzeichnis der Abbildungen 466 Verzeichnis der Tabellen 472 Literaturverzeichnis 475 Sachindex 494 Personenindex 505 Schlüsselwortindex 507 xvi Inhaltsverzeichnis