Verteilte Datenbanken
Verteilte Datenbanken
Ein Datenbanksystem heißt verteilt, wenn die zugehörige Datenbasis koordiniert auf mehrere Computersysteme oder Standorte aufgeteilt ist.
Für Anwendungen soll sich ein verteiltes Datenbanksystem möglichst wie eine normale zentrale Datenbank verhalten.
Grundidee
Ein zusammengehörender Datenbestand kann an verschiedenen Standorten gespeichert sein.
Beispiel: Ein Großhändler hat eine Zentrale und mehrere Auslieferungslager.
- Lager arbeiten lokal weitgehend selbstständig.
- Die Zentrale braucht Überblick über den Gesamtzustand.
- Logisch handelt es sich um eine gemeinsame Datenbank.
- Physisch liegen Daten an mehreren Orten.
Gründe für Verteilung
| Grund | Bedeutung |
|---|---|
| Organisation | Dezentrale Standorte wollen lokale Datenbestände. |
| Verfügbarkeit | Bei Ausfall eines Knotens soll lokaler Betrieb möglich bleiben. |
| Sicherheit | Daten können nach Zuständigkeit getrennt werden. |
| Flexibilität | Knoten können leichter hinzugefügt oder entfernt werden. |
| Performance | Datenmenge und Transaktionslast werden verteilt. |
| Integration | Historisch gewachsene Datenbanken können zusammengeführt werden. |
Homogene und heterogene DDBMS
| Typ | Bedeutung |
|---|---|
| Homogen | Alle beteiligten Datenbanken nutzen dasselbe DBMS. |
| Heterogen | Mindestens eine beteiligte Datenbank nutzt ein anderes DBMS. |
Homogene Systeme sind leichter zu verwalten. Heterogene Systeme sind in der Praxis häufig, aber komplexer.
Fragmentierung
Bei Fragmentierung wird eine logische Relation auf mehrere Standorte aufgeteilt.
Horizontale Fragmentierung
Die Zeilen werden aufgeteilt.
Beispiel:
- Kunden aus Wien in Standort A
- Kunden aus Linz in Standort B
- Kunden aus Graz in Standort C
Alle Fragmente haben dieselben Spalten, aber unterschiedliche Datensätze.
Vertikale Fragmentierung
Die Spalten werden aufgeteilt.
Beispiel:
- häufig genutzte Kundendaten lokal
- sensible Zahlungsdaten auf einem besonders geschützten Server
Die Teile müssen über einen gemeinsamen Schlüssel wieder zusammengesetzt werden können.
Hybride Fragmentierung
Kombination aus horizontaler und vertikaler Fragmentierung.
Replikation
Bei Replikation werden Daten mehrfach gespeichert.
Vorteile:
- höhere Verfügbarkeit
- schnellere lokale Zugriffe
- Ausfallsicherheit
Nachteile:
- Synchronisation nötig
- Konsistenzprobleme möglich
- höherer Speicherbedarf
- Konflikte bei parallelen Änderungen
Remote Query und Distributed Query
Eine Remote Query bezieht sich vollständig auf Objekte an einem entfernten Standort.
SELECT *
FROM [email protected];
Eine Distributed Query greift auf Objekte an mehreren Standorten zu.
SELECT e.ename, d.dname
FROM scott.emp e,
[email protected] d
WHERE e.deptno = d.deptno;
Distributed Queries sind schwieriger zu optimieren, weil Daten über das Netzwerk übertragen werden müssen.
Database Link
Ein Database Link ist eine Verbindung von einer Datenbank zu einer anderen.
Beispiel:
CREATE DATABASE LINK oracle_db_link
USING 'oracledb';
Abfrage:
SELECT *
FROM scott.emp@oracle_db_link;
Bei öffentlichen Database Links muss besonders auf Sicherheit geachtet werden, weil viele Benutzer Zugriff erhalten können.
Join-Strategien in verteilten Datenbanken
Wenn Tabellen an verschiedenen Standorten liegen, wird ein Join teuer.
Mögliche Strategien:
| Strategie | Idee |
|---|---|
| Ship whole | Eine ganze Relation wird zum Join-Knoten übertragen. |
| Fetch as needed | Für jedes lokale Tupel werden passende entfernte Daten angefordert. |
| Semijoin | Nur Join-Attribute werden zuerst übertragen, um Datenmenge zu reduzieren. |
Die Wahl der Strategie beeinflusst die Performance stark.
Distributed Query Optimization
Die Optimierung verteilter Abfragen entscheidet:
- wo eine Abfrage ausgeführt wird
- welche Daten übertragen werden
- in welcher Reihenfolge Joins passieren
- wie Netzwerkverkehr reduziert wird
Oracle-Beispiel aus den Unterlagen:
SELECT /*+ DRIVING_SITE(dept) */ *
FROM emp, [email protected]
WHERE emp.deptno = dept.deptno;
Damit kann beeinflusst werden, auf welcher Site die Abfrage ausgeführt wird.
Sicherheitsaspekte
Verteilte Datenbanken brauchen besondere Kontrolle.
Wichtige Fragen:
- Wer darf Remote-Verbindungen verwenden?
- Werden Zugangsdaten sicher gespeichert?
- Welche Daten dürfen repliziert werden?
- Wie werden Änderungen synchronisiert?
- Was passiert bei Netzwerkausfall?
- Wie wird geloggt und auditiert?
Merksatz
Verteilte Datenbanken verstecken physische Verteilung hinter einer logischen Datenbanksicht. Die Schwierigkeit liegt in Konsistenz, Sicherheit und Performance.
Zuletzt aktualisiert: 6. Juni 2026