Datenbankmodelle, Datenbanksprachen und

Werbung
Datenbankmodelle,
Datenbanksprachen und
DatenbankmanagementSysteme
von
Professor Dr. Gottfried Vossen
Westfälische Wilhelms-Universität Münster
3., vollständig überarbeitete Auflage
R.01denbourg Verlag München Wien 1999
Inhaltsverzeichnis
Vorwort zur ersten Auflage
xv
Vorwort zur zweiten Auflage
xvii
Vorwort zur d r i t t e n Auflage
xxi
I
Einführung
1
1 Motivation. Historisches
1.1 Datenintensive Anwendungen und deren Anforderungen
1.2 Einordung und historische Entwicklung des Gebiets „Datenbanken" . .
1.3 Generische Sicht eines Datenbanksystems
1.4 Netzwerk- und hierarchische Datenbanken
1.5 Relationale Datenbanken
1.6 Bibliographische Hinweise und Ergänzungen
1.7 Übungen
3
3
5
9
11
14
19
19
2 Aufbau und Organisation von Datenbanken und Datenbanksystemen
2.1 Datenunabhängigkeit
2.2 Die ANSI/SPARC-Schemaebenen
2.3 Sprachebenen und -klassen
2.4 Ein Systemschichtenmodell
2.5 Zentrale Systemkomponenten
2.6 Bibliographische Hinweise, Ergänzungen, Querbezüge
2.7 Übungen
21
21
22
25
28
30
36
37
3 Physische Architekturkonzepte
3.1 Zentralisierte Datenbanksysteme
3.2 Datenbank-Serverarchitekturen
3.2.1 Das Client/Server-Konzept
3.2.2 Anfrageserver
3.2.3 Objekt- und Seitenserver
3.3 Verteilte Datenbanksysteme
3.3.1 Vor- und Nachteile
39
40
41
41
43
44
47
48
vi
Inhalt
3.3.2 Klassifikationen
3.3.3 Homogene Verteilung
3.3.4 Heterogene Verteilung
Parallele Datenbanksysteme
Bibliographische Hinweise und Ergänzungen
Übungen
49
51
54
57
62
63
Datenmodelle und Datenbankentwurf
65
3.4
3.5
3.6
II
4
Statischer Datenbank-Entwurf mit d e m Entity-Relationship-Modell
4.1 Der Datenbank-Lebenszyklus
4.2 Aspekte der Qualitätssicherung
4.3 Phasen des Entwurfsprozesses
4.3.1 Anforderungsanalyse und -Spezifikation
4.3.2 Konzeptioneller Entwurf
4.3.3 Logischer Entwurf
4.3.4 Physischer Entwurf
4.3.5 Weitere Entwurfsschritte
4.4 Allgemeine Abstraktionskonzepte
4.5 Das Entity-Relationship-Modell
4.5.1 Entities und Attribute
4.5.2 Relationships
4.5.3 IS-A-Beziehungen
4.5.4 Zusammenfassung
4.6 Konzeptioneller Entwurf mit dem ER-Modell
4.7 Bibliographische Hinweise und Ergänzungen
4.8 Übungen
67
68
71
72
74
75
77
77
78
79
80
81
89
95
101
102
109
110
5
Das relationale Datenmodell
5.1 Relationen
5.2 Datenabhängigkeiten. Relationenschemata
5.2.1 Intrarelationale Abhängigkeiten
5.2.2 Relationale Datenbanken
5.2.3 Interrelationale Abhängigkeiten
5.3 Transformation eines ER-Diagramms in das Relationenmodell
5.3.1 Vorbereitende Schritte
5.3.2 Transformation
5.4 Datenbank-Definition mit SQL
5.4.1 Datenbankschema-Definition
5.4.2 Tabellen-Definition
5.4.3 Integritätsbedingungen
5.4.4 Weitere Definitionsaspekte
5.5 Fallstudie Buchverlag
5.6 Bemerkungen zum Reverse Engineering
5.7 Bibliographische Hinweise und Ergänzungen
5.8 Übungen
115
115
118
119
121
122
125
125
126
129
130
131
132
133
135
142
143
144
0
Inhalt
vii
6 Integrität in relationalen Datenbanken
6.1 Arten von Integritätsbedingungen
6.2 Funktionale Abhängigkeiten
6.2.1 Definition. Implikation
6.2.2 Ableitung. Das Membership-Problem
6.2.3 Anwendungen des Membership-Algorithmus. Schlüssel
6.2.4 (Abhängigkeits-) Basen
6.3 Bemerkungen zur allgemeinen Implikation
6.4 Inklusionsabhängigkeiten
6.5 Assertions und Trigger
6.6 Aktive Datenbanken
6.7 Bibliographische Hinweise, Ergänzungen, Querbezüge
6.8 Übungen
147
147
152
152
155
161
164
167
169
171
177
180
184
7 Normalisierung und algorithmischer Schema-Entwurf
7.1 Selektion, Projektion und Verbundoperation
7.2 Universalrelationen und Update-Anomalien
7.3 Zweite, dritte und Boyce-Codd-Normalform
7.4 Dekomposition und Synthese
7.5 Mehrwertige und Verbund-Abhängigkeiten
7.6 Vierte und fünfte Normalform
7.7 Bibliographische Hinweise und Ergänzungen
7.8 Übungen
187
187
191
193
199
209
212
215
217
8 Semantische Datenmodellierung und Prozeßentwurf
8.1 Grenzen des ER-basierten Datenbank-Entwurfs. Semantische Datenmodellierung
8.2 Daten-, Funktions- und Prozeßentwurf
8.2.1 Revision des statischen Datenbankentwurfs
8.2.2 Geschäftsprozeßmodellierung und Workflow-Management . . .
8.3 Das Generische Semantische Modell (GSM)
8.3.1 Lokale GSM-Konstrukte
8.3.2 Globale GSM-Aspekte
8.3.3 Zusammenfassung
8.4 Ein Modellierungswerkzeug für dynamische Aspekte
8.4.1 Petri-Netze
8.4.2 Verwendung von Petri-Netzen in der Modellierung
8.5 Einführung in IDEA
8.5.1 Übersicht
8.5.2 Eine Fallstudie zur Analyse
8.6 Bibliographische Hinweise und Ergänzungen
8.7 Übungen
219
9 Objektbasierte Modelle
9.1 Grundlagen
9.1.1 Modellierung stark strukturierter Information
9.1.2 Objektorientierung in höheren Programmiersprachen
9.1.3 Das Paradigma der Objektorientierung
261
261
261
264
267
219
222
223
224
227
227
235
236
239
239
243
246
246
248
259
260
viii
Inhalt
9.2
9.3
Kennzeichen objektorientierter Datenmodelle
Einführung in den Object Database Standard
9.3.1 Grundzüge des ODMG-Modells
9.3.2 Die Objekt-Definitionssprache ODL
Grundzüge objektrelationaler Datenmodelle
Bibliographische Hinweise und Ergänzungen
Übungen
9.4
9.5
9.6
III
Datenbanksprachen
269
283
284
288
291
296
297
299
10 Codd-vollständige (relationale) Sprachen
10.1 Die Relationenalgebra
10.1.1 Relationale Operationen und ihre Rechenregeln
10.1.2 Ausdrücke der Relationenalgebra
10.1.3 Eigenschaften der Relationenalgebra
10.1.4 Algebraische Optimierung
10.2 Relationenkalküle
10.2.1 Der Relationen-Tupelkalkül
10.2.2 Der Relationen-Domainkalkül
10.3 Datenbank-Updates. IDM-Transaktionen
10.4 View-Updates
10.5 Bibliographische Hinweise und Ergänzungen
10.6 Übungen
301
301
302
305
310
312
315
316
321
322
328
333
334
11 Der
11.1
11.2
11.3
11.4
339
339
340
342
343
343
345
347
349
353
360
361
362
362
Sprachstandard SQL
Zur Evolution von SQL
Beispieldatenbank
Datenbank-Updates
Datenbank-Anfragen
11.4.1 Einführung
11.4.2 Zur Syntax von SELECT
11.4.3 Semantik von SELECT am Beispiel von RA-Ausdrücken
11.4.4 Verbund-Operatoren in SQL
11.4.5 Beispiele
11.4.6 Abschließende Bemerkungen
11.5 Rekursion in SQL3
11.6 Bibliographische Hinweise und Ergänzungen
11.7 Übungen
12 Einschränkungen und Verallgemeinerungen Codd-vollständiger Sprachen
365
12.1 Uni versalrelationen-Anfragen
365
12.2 Geschachtelte Relationen und ihre Operationen
373
12.2.1 Geschachtelte Strukturen
373
12.2.2 Operationen auf geschachtelten Relationen
376
12.3 Grundlagen von Datalog
385
12.3.1 Motivationen
385
Inhalt
ix
12.4
12.5
12.6
12.7
12.3.2 Logik als Anfragesprache
12.3.3 Intensionale und extensionale Datenbanken
12.3.4 Rekursion
12.3.5 Integritätsbedingungen
12.3.6 Datalog-Programme und deren Interpretation
12.3.7 Ausdruckskraft von Datalog
Weitere Vollständigkeitsbegriffe für Anfragesprachen
Ausdruckskraft und Komplexität von Anfragesprachen
Bibliographische Hinweise und Ergänzungen
Übungen
13 Sprachen für Objektdatenbanken
13.1 Spezielle Eigenschaften von objektorientierten Datenbanksprachen
13.1.1 Objekterhalt vs. Objekterzeugung
13.1.2 Zugriff auf komplexe Objekte. Pfad-Ausdrücke
13.1.3 Zugriff auf Mengen von Objekten
13.1.4 Update-Operationen
13.2 Beispiele objektorientierter Sprachen
13.2.1 0 2
13.2.2 ObjectStore
13.3 Die ODMG-Sprache OQL
13.4 Beispiele objektrelationaler Sprachen
13.4.1 Postgres
13.4.2 UniSQL/X
13.5 Bibliographische Hinweise und Ergänzungen
13.6 Übungen
IV
Datenbanksystemtechnik
387
388
389
391
391
394
395
397
401
404
407
. . 407
408
410
413
414
415
415
420
422
424
424
429
431
432
433
14 Interne Datenbank- und Speicherorganisation
435
14.1 Plattenspeicher
435
14.1.1 Blöcke und Blockzugriffe
437
14.1.2 RAID-Architekturen
438
14.2 Pufferverwaltung
441
14.3 Files
442
14.3.1 Sequentielle Files
443
14.3.2 Effizienter Filezugriff durch Indexierung
445
14.4 Spezielle Indexstrukturen
446
14.4.1 ISAM
.446
14.4.2 Baumstrukturen für eindimensionale Punktdaten
448
14.4.3 Baumstrukturen für mehrdimensionale Punktdaten
453
14.4.4 Hash-Organisationsformen
458
14.4.5 Index-Strukturen zur Auswertung von Pfad-Ausdrücken . . . . 462
14.5 Beispiel: Speicherorganisation bei DB2
464
14.6 Bibliographische Hinweise und Ergänzungen
467
14.7 Übungen
469
Inhalt
15 Verarbeitung und Optimierung von Anfragen
15.1 Anfrageverarbeitung im Überblick
15.2 Anfragen in homogen verteilten Datenbanksystemen
15.3 Anfrage-Optimierung
15.3.1 Ziele und Ansätze
15.3.2 High-Level-Optimierung
15.3.3 Low-Level-Optimierung
15.4 Implementierungstechniken für den Verbund
15.4.1 Nested-Loop-Join
15.4.2 Sort-Merge-Join
15.4.3 Hash-Join
15.5 Spezielle QEP-Parameter
15.6 Anfrage-Prozessoren
15.7 Der Systemkatalog am Beispiel DB2
15.8 Bibliographische Hinweise und Ergänzungen
15.9 Übungen
471
472
473
476
476
477
481
482
482
483
484
487
490
492
495
16 Physischer Datenbankentwurf und Tuning
16.1 Grundlagen des physischen Datenbankentwurfs
16.2 Fragmentierung in verteilten Datenbanken
16.3 Datenbank-Tuning
16.3.1 Grundlegende Prinzipien
16.3.2 Tuning von Indexen
16.3.3 Tuning in relationalen Systemen
16.4 Datenbank-Benchmarks
16.4.1 Der Wisconsin-Benchmark
16.4.2 Die TPC-Benchmarks
16.4.3 Der 007-Benchmark
16.5 Bibliographische Hinweise und Ergänzungen
16.6 Übungen
497
497
501
V
517
Transaktionsverarbeitung
17 Transaktionen und deren korrekte Verarbeitung
17.1 Das Transaktionskonzept
17.2 Beispiele für Synchronisationsprobleme
17.3 Das ACID-Prinzip
17.4 Das Read-Write-Modell für Transaktionen
17.5 Serialisierbarkeit von Schedules
17.5.1 Schedules
17.5.2 View-Serialisierbarkeit
17.5.3 Konflikt-Serialisierbarkeit
17.5.4 Commit-Serialisierbarkeit
17.6 Fehlersicherheit von Schedules
17.6.1 Motivation
17.6.2 Rücksetzbarkeit
17.6.3 Vermeidung kaskadierender Aborts
495
502
503
505
505
506
507
508
511
514
514
519
520
523
525
527
529
530
533
535
539
541
542
543
543
Inhalt
.
17.6.4 Striktheit
17.7 Korrektheit von Schedules
17.8 Bibliographische Hinweise und Ergänzungen
17.9 Übungen
xi
544
545
546
546
18 Concurrency Control
18.1 Überlegungen zum Scheduler-Entwurf
18.2 Sperrende Scheduler
18.2.1 Einführung
18.2.2 Das 2-Phasen-Sperrprotokoll
18.2.3 Varianten des 2-Phasen-Sperrprotokolls
18.2.4 Das MGL-Protokoll
18.2.5 Das TL-Protokoll
18.2.6 Tuning in Gegenwart sperrender Scheduler
18.3 Nicht-sperrende Scheduler
18.3.1 Zeitmarken-Verfahren
18.3.2 Serialisationsgraphen-Tester
18.4 Zur Ausnutzung semantischer Information
18.5 Bibliographische Hinweise und Ergänzungen
18.6 Übungen
549
549
553
553
555
559
561
565
567
570
571
572
574
578
579
19 Grundlagen des Recovery
19.1 Einführung
19.2 Organisation eines Data-Managers
19.3 Der Recovery-Manager
19.4 Ein Undo/Redo-Protokoll
19.5 Alternativen zum Undo/Redo-Protokoll
19.6 Recovery-Tuning
19.7 Bibliographische Hinweise und Ergänzungen
19.8 Übungen
581
581
583
585
589
591
592
593
593
20 Transaktionsverarbeitung bei homogener Verteilung
20.1 Verteilte Transaktionen und Schedules
20.2 Verteiltes Concurrency Control
20.2.1 Verteiltes TO
20.2.2 Verteiltes 2PL
20.2.3 Verteiltes SGT
20.2.4 Deadlock-Erkennung und -Auflösung
20.3 Verteilte Recovery-Protokolle
20.3.1 Atomare Freigaben
20.3.2 Das Zwei-Phasen-Commitprotokoll
20.3.3 Das Drei-Phasen-Commitprotokoll
20.4 Transaktionen auf replikativen Datenbanken
20.4.1 Ein-Kopien-Serialisierbarkeit
20.4.2 Concurrency Control
20.5 Bibliographische Hinweise
20.6 Übungen
595
595
599
599
600
601
605
607
607
609
613
615
615
619
620
621
Inhalt
Xll
21 Transaktionsverarbeitung bei heterogener Verteilung
21.1 Einführung
21.2 Ein MDBS-Modell
21.3 Transaktionen und Schedules in einem MDBS
21.4 Globale Serialisierbarkeit
21.5 Gewährleistung globaler Serialisierbarkeit
21.5.1 Forcierte Konflikte
21.5.2 Rigorosität
21.5.3 Freigabe-Ordnung
21.6 Alternative Korrektheits-Begriffe
21.6.1 Quasi-Serialisierbarkeit
21.6.2 Zweistufige Serialisierbarkeit
21.7 Bibliographische Hinweise
21.8 Übungen
625
625
626
628
631
633
634
635
636
637
637
639
640
640
VI
643
Neuere Entwicklungen
22 Daten-Integration
22.1 Integrierter Datenzugriff
22.2 Integration von Datenbank- und anderen Systemen
22.2.1 Verteilte Objektverwaltung
22.2.2 Die Object Management Architecture
22.2.3 CORBA
22.3 Integration von Daten aus heterogenen Quellen (im Internet)
22.3.1 Datenbanken und Internet'.
22.3.2 Datenbank-Web-Anbindungen
22.3.3 Das Web als Datenbanksystem
22.3.4 Semistrukturierte Daten
22.4 Bibliographische Hinweise und Ergänzungen
22.5 Übungen
645
23 Daten-Analyse
23.1 Data Warehouses
23.1.1 Warehouse-Anwendungen und -Architektur
23.1.2 Warehouse-Wartung
23.2 Grundlagen des OLAP
23.2.1 Mehrdimensionale Daten und Data Cubes
23.2.2 Relationales OLAP
23.2.3 Der relationale Cube-Operator
23.3 Data Mining
23.3.1 Klassifikation
23.3.2 Assoziationsregeln
23.3.3 Analyse von Sequenzen
23.4 Bibliographische Hinweise und Ergänzungen
23.5 Übungen
669
645
649
650
652
654
657
658
660
663
665
666
667
669
671
674
679
679
683
687
693
694
695
699
702
703
Inhalt
24 Ausblicke
24.1 Temporale Datenbanken
24.2 Räumliche Daten und GIS
24.3 Multimedia-Datenbanksysteme
24.4 Stationäre Server mit mobilen Clients
24.5 Bibliographische Hinweise und Ergänzungen
xiii
705
705
709
712
713
715
Literaturverzeichnis
717
Sachindex
757
Zugehörige Unterlagen
Herunterladen