Mehrrechner-Datenbanksysteme

Inhaltsverzeichnis


Inhaltsverzeichnis
Teil I - Grundlagen
1 - Einführung
1.1 - Von der zentralisierten zur verteilten Datenbankverarbeitung
1.2 - Anforderungen an Mehrrechner-Datenbanksysteme
2 - Datenbanksysteme und Rechnernetze
2.1 - Datenbanksysteme
2.1.1 - Relationale Datenbanken
2.1.2 - Aufbau von Datenbanksystemen
2.1.3 - Das Transaktionskonzept
2.1.4 - Transaktionssysteme
2.2 - Rechnernetze
2.2.1 - Typen von Rechnernetzen
2.2.2 - ISO-Referenzmodell
3 - Klassifikation von Mehrrechner-Datenbanksystemen
3.1 - Shared-Everything, Shared-Disk, Shared-Nothing
3.1.1 - Klassifikationsmerkmale
3.1.2 - Technische Probleme
3.2 - Integrierte vs. föderative Mehrrechner-DBS
3.3 - Mehrrechner-DBS mit funktionaler Spezialisierung
3.3.1 - Workstation/Server-Datenbanksysteme
3.3.2 - Datenbankmaschinen
3.3.3 - Abschließende Bemerkungen
3.4 - Vergleich und qualitative Bewertung
Teil II - : Verteilte Datenbanksysteme
4 - Architektur von Verteilten Datenbanksystemen
4.1 - Transparenzeigenschaften
4.2 - Schemaarchitektur
4.3 - Katalogverwaltung
4.4 - Namensverwaltung
Übungsaufgaben
5 - Datenbankverteilung
5.1 - Fragmentierung
5.2 - Allokation und Replikation
5.3 - Horizontale Fragmentierung
5.3.1 - Primäre horizontale Fragmentierung
5.3.2 - Abgeleitete horizontale Fragmentierung
5.3.3 - Unterstützung von Parallelverarbeitung
5.4 - Vertikale Fragmentierung
5.5 - Hybride Fragmentierung
5.6 - Fragmentierungstransparenz
5.7 - Bestimmung der Datenverteilung
5.7.1 - Festlegung der Fragmentierung
5.7.2 - Festlegung der Allokation
Übungsaufgaben
6 - Verteilte Anfragebearbeitung
6.1 - Überblick
6.2 - Anfragetransformation
6.3 - Erzeugung von Fragment-Anfragen
6.3.1 - Daten-Lokalisierung bei primärer horizontaler Fragmentierung
6.3.2 - Daten-Lokalisierung bei abgeleiteter horizontaler Fragmentierung
6.3.3 - Daten-Lokalisierung bei vertikaler Fragmentierung
6.3.4 - Daten-Lokalisierung bei hybrider Fragmentierung
6.4 - Globale Query-Optimierung
6.5 - Bearbeitung von Join-Anfragen
6.5.1 - Einfache Strategien
6.5.2 - Semi-Join-Strategien
6.5.3 - Bitvektor-Join
6.5.4 - Mehr-Wege-Joins
Übungsaufgaben
7 - Transaktionsverwaltung in Verteilten Datenbanksystemen
7.1 - Struktur verteilter Transaktionen
7.2 - Commit-Behandlung
7.2.1 - Verteiltes Zwei-Phasen-Commit (Basis-Protokoll)
7.2.2 - Lineares Zwei-Phasen-Commit
7.2.3 - Hierarchische 2PC-Protokolle
7.2.4 - Optimierungen von 2PC-Verfahren
Optimierung lesender Sub-Transaktionen
1-Phasen-Commit
7.2.5 - Drei-Phasen-Commit
7.3 - Integritätssicherung
Übungsaufgaben
8 - Synchronisation in Verteilten Datenbanksystemen
8.1 - Sperrverfahren in Verteilten DBS
8.1.1 - Zentrales Sperrprotokoll
8.1.2 - Verteilte Sperrverfahren
8.2 - Zeitmarkenverfahren
8.3 - Optimistische Synchronisation
8.3.1 - Validierungsansätze
8.3.2 - Zentrale Validierung
8.3.3 - Verteilte Validierung
8.4 - Mehrversionen-Konzept
8.5 - Deadlock-Behandlung
8.5.1 - Deadlock-Verhütung
8.5.2 - Deadlock-Vermeidung
Wait/Die und Wound/Wait
Dynamische Zeitmarken und Zeitintervalle
8.5.3 - Timeout-Verfahren
8.5.4 - Deadlock-Erkennung
Zentrale Deadlock-Erkennung
Verteilte Deadlock-Erkennung
8.5.5 - Hybride Strategien
8.6 - Abschließende Bemerkungen
Übungsaufgaben
9 - Replizierte Datenbanken
9.1 - Write-All-Ansätze
9.2 - Primary-Copy-Verfahren
9.3 - Voting-Verfahren
9.3.1 - Mehrheits-Votieren (Majority Consensus)
9.3.2 - Gewichtetes Votieren (Quorum Consensus)
9.4 - Schnappschuß-Replikation
9.5 - Katastrophen-Recovery
9.5.1 - Systemstruktur
9.5.2 - Commit-Behandlung
9.6 - Abschließende Bemerkungen
Übungsaufgaben
Teil III - Heterogene Datenbanken
10 - Autonomie und Heterogenität
10.1 - Knotenautonomie
10.2 - Heterogenität
10.3 - Die Rolle von Standards
10.4 - Realisierungsansätze
11 - Verteilte Transaktionssysteme
11.1 - Transaktionsverarbeitung in Client/Server-Systemen
11.2 - Alternativen zur verteilten Transaktionsverarbeitung
11.2.1 - Transaction Routing
11.2.2 - Programmierte Verteilung (Verteilte Anwendungen)
11.2.3 - Verteilung von DB-Operationen (Fernzugriff auf Datenbanken)
11.3 - Realisierungsaspekte
11.3.1 - Transaktionsverwaltung
11.3.2 - Kommunikation
11.3.3 - Datenbank-Gateways
11.4 - Standardisierungsansätze
11.4.1 - X/Open Distributed Transaction Processing (DTP)
11.4.2 - Multivendor Integration Architecture (MIA)
11.4.3 - Remote Database Access (RDA)
11.4.4 - SQL Access
11.4.5 - ODBC und IDAPI
11.4.6 - IBM Distributed Relational Database Architecture (DRDA)
Übungsaufgaben
12 - Föderative Datenbanksysteme
12.1 - Schemaarchitektur
12.2 - Semantische Heterogenität
12.3 - Schemaintegration
12.4 - Einsatz einer Multi-DB-Anfragesprache
12.5 - Transaktionsverwaltung
Übungsaufgaben
Teil IV - Shared-Disk-Datenbanksysteme
13 - Architektur von Shared-Disk-DBS
13.1 - Grobarchitektur lose gekoppelter Shared-Disk-Systeme
13.2 - Shared-Disk vs. Shared-Nothing
13.3 - Neue Realisierungsanforderungen
13.3.1 - Globale Synchronisation
13.3.2 - Kohärenzkontrolle
13.3.3 - Lastverteilung
13.3.4 - Logging und Recovery
13.4 - Nah gekoppelte Shared-Disk-Systeme
13.4.1 - Einsatzformen der nahen Kopplung
13.4.2 - Realisierungsalternativen
13.4.3 - Nutzung eines Globalen Erweiterten Hauptspeichers
Übungsaufgaben
14 - Synchronisation in Shared-Disk-DBS
14.1 - Globale Sperrverwaltung auf dedizierten Rechnern
14.2 - Techniken zur Einsparung globaler Sperranforderungen
14.2.1 - Lese- und Schreibautorisierungen
14.2.2 - Hierarchische Sperren und Autorisierungen
14.3 - Verteilte Sperrverfahren mit fester GLA-Zuordnung
14.4 - Verteilte Sperrverfahren mit dynamischer GLA-Zuordnung
14.5 - Token-Ring-Sperrprotokolle
14.6 - Optimistische Synchronisation
14.6.1 - Zentrale Validierung
14.6.2 - Verteilte Validierung
Übungsaufgaben
15 - Kohärenzkontrolle
15.1 - Verfahrensüberblick
15.1.1 - Behandlung von Pufferinvalidierungen
15.1.2 - Update-Propagierung
15.2 - Broadcast-Invalidierung
15.2.1 - Zusammenwirken mit der Synchronisation
15.2.2 - Propagierung von Änderungen
15.3 - On-Request-Invalidierung
15.3.1 - Versionsnummern und Invalidierungsvektoren
15.3.2 - Dynamische Page-Owner-Zuordnung
15.3.3 - Feste Page-Owner-Zuordnung
15.4 - Einsatz von Haltesperren
15.5 - Unterstützung von Satzsperren
15.6 - Zusammenfassende Bewertung
Übungsaufgaben
Teil V - Parallele DB-Verarbeitung
16 - Einführung in Parallele DBS
16.1 - Speedup und Scaleup
16.2 - Architektur von Parallelen DBS
16.3 - Arten der Parallelverarbeitung
Übungsaufgaben
17 - Datenverteilung in Parallelen DBS
17.1 - Bestimmung des Verteilgrades
17.2 - Fragmentierung
17.3 - Allokation
17.4 - Replikation
17.5 - Datenverteilung bei Shared-Everything und Shared-Disk
Übungsaufgaben
18 - Parallele Anfragebearbeitung
18.1 - Allgemeine Vorgehensweise
18.2 - Parallelisierung unärer relationaler Operatoren
18.2.1 - Selektion
18.2.2 - Projektion
18.2.3 - Aggregatfunktionen
18.2.4 - Parallele Sortierung
18.3 - Parallele Joins
18.3.1 - Join-Berechnung mit dynamischer Replikation
18.3.2 - Join-Berechnung mit dynamischer Partitionierung
18.3.3 - Parallele Hash-Joins
18.3.4 - Mehr-Wege-Joins
18.4 - Probleme der parallelen DB-Verarbeitung
18.4.1 - Skew-Behandlung
18.4.2 - Unterstützung gemischter Arbeitslasten
Übungsaufgaben
Teil VI - Systemüberblicke
19 - Existierende Mehrrechner-Datenbanksysteme
19.1 - IBM
19.1.1 - Bisherige Shared-Disk-Systeme von IBM
19.1.2 - Parallel Sysplex und Parallel Transaction Server
19.1.3 - Paralleles DB2
19.2 - Oracle
19.2.1 - Verteilte DB-Verarbeitung
19.2.2 - Oracle Parallel Server
19.3 - DEC
19.4 - ASK/Ingres
19.5 - Informix
19.6 - Sybase
19.7 - Tandem
19.8 - NCR/Teradata
19.9 - UniSQL
19.10 - Computer Associates
19.11 - Cincom
19.12 - SNI
19.13 - Abschließende Bemerkungen
Teil VII - Anhang
20 - Lösungen zu den Übungsaufgaben
21 - Literatur
Index