Datenbanken

Verteilte Datenbanken

Distributed Database Management Systems, Fragmentierung, Replikation, Database Links, Remote Queries und Optimierung verteilter Abfragen.

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

GrundBedeutung
OrganisationDezentrale Standorte wollen lokale Datenbestände.
VerfügbarkeitBei Ausfall eines Knotens soll lokaler Betrieb möglich bleiben.
SicherheitDaten können nach Zuständigkeit getrennt werden.
FlexibilitätKnoten können leichter hinzugefügt oder entfernt werden.
PerformanceDatenmenge und Transaktionslast werden verteilt.
IntegrationHistorisch gewachsene Datenbanken können zusammengeführt werden.

Homogene und heterogene DDBMS

TypBedeutung
HomogenAlle beteiligten Datenbanken nutzen dasselbe DBMS.
HeterogenMindestens 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.

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:

StrategieIdee
Ship wholeEine ganze Relation wird zum Join-Knoten übertragen.
Fetch as neededFür jedes lokale Tupel werden passende entfernte Daten angefordert.
SemijoinNur 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