Datenbanken

Werbung
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
Herunterladen