5 Datenbankverteilung
5.6 Fragmentierungstransparenz
Eine Forderung an Verteilte Datenbanksysteme ist die Unterstützung von Fragmentierungstransparenz (Kap. 4.1), unabhängig davon, welche der vorgestellten Alternativen zur Fragmentierung eingesetzt wird. Dies bedeutet, daß die vorgenommene Zerlegung für den Endbenutzer und Anwendungsprogrammierer vollkommen unsichtbar bleibt; es ist alleinige Aufgabe des Verteilten DBS Datenbankoperationen auf die einzelnen Fragmente abzubilden.
Beispiel 5-7
- Die Kundenrelation sei wie in Beispiel 5-1 horizontal in die drei Fragmente KUNDE1, KUNDE2 und KUNDE3 unterteilt. Um den Namen des Kunden mit KNR=K4 zu ermitteln, kann bei Gewährleistung von Fragmentierungstransparenz die Anfrage wie im zentralen Fall formuliert werden:
- SELECT NAME FROM KUNDE WHERE KNR=K4.
- Ohne Fragmentierungstransparenz dagegen müßte u.U. auf jedes der drei Fragmente explizit zugegriffen werden:
- SELECT NAME FROM KUNDE1 WHERE KNR=K4;
- IF NOT-FOUND THEN
- SELECT NAME FROM KUNDE2 WHERE KNR=K4;
- IF NOT-FOUND THEN
- SELECT NAME FROM KUNDE3 WHERE KNR=K4;
- Noch signifikanter sind die Vorteile der Fragmentierungstransparenz bezüglich Änderungen, die dazu führen können, daß Tupel von einem Fragment in ein anderes verlegt werden (migrieren) müssen. Wenn etwa der Kunde K3 aufgrund eines Wohnungswechsels die Filialzugehörigkeit ändert, so ist dies bei Fragmentierungstransparenz eine einfache Operation, z.B.:
- UPDATE KUNDE SET Filiale = "L" WHERE KNR=K3;
- Ohne Fragmentierungstransparenz dagegen müßte ein Löschen von K3 in KUNDE3 und Einfügen in KUNDE1 vorgenommen werden:
- SELECT NAME, GEBDAT INTO :Name, :Gebdat
- FROM KUNDE3 WHERE KNR =K3;
- INSERT INTO KUNDE1 (KNR, NAME, GEBDAT, Filiale)
- VALUES (K3, :Name, :Gebdat, "L");
- DELETE KUNDE3 WHERE KNR=K3;
- Noch aufwendiger wird die Programmierung, wenn auch abgeleitete horizontale Fragmentierungen von Änderungen betroffen sind, z.B. die Umverteilung aller Konten des Kunden, der die Filialzugehörigkeit gewechselt hat. Bei Gewährleistung von Fragmentierungstransparenz werden solche Wartungsoperationen automatisch durch das DBS durchgeführt.
Das Beispiel verdeutlicht, daß Fragmentierungstransparenz eine erhebliche Erleichterung der DB-Benutzung bedeutet. Weiterhin kann nun die Fragmentierung jederzeit geändert werden, ohne daß sich dadurch Rückwirkungen auf bestehende Anwendungen ergeben.