5 Datenbankverteilung

5.4 Vertikale Fragmentierung

Die vertikale Fragmentierung zerlegt eine Relation spaltenweise durch Definition von Projektionen auf den Attributen der Relation. Die Forderungen nach Vollständigkeit und Rekonstruierbarkeit verlangen, das jedes Attribut in wenigstens einem Fragment enthalten ist. Die Rekonstruktion der globalen Relation erfordert den natürlichen Verbund (Join) zwischen den einzelnen Fragmenten. Um diese Join-Berechnung verlustfrei vornehmen zu können, ist es jedoch erforderlich, den Primärschlüssel der globalen Relation (bzw. einen sonstigen Schlüsselkandidaten) in jedem Fragment mitzuführen. Die Forderung nach Disjunktheit muß also bei der vertikalen Fragmentierung auf die Nicht-Primärattribute (Attribute, die nicht Teil des Primärschlüssels sind) eingeschränkt werden.

Beispiel 5-5

Die Kundenrelation aus unserer Bankanwendung wurde in Abb. 5-4 durch Anwendung von Projektionen in zwei vertikale Fragmente KUNDE1 und KUNDE2 zerlegt. Der Primärschlüssel KNR ist in beiden Fragmenten enthalten, um die Gesamt-Relation durch Join-Bildung wieder rekonstruieren zu können. Es gilt

KUNDE = KUNDE1 KUNDE2.

Abb. 5-4: Vertikale Fragmentierung der Kundenrelation

Die vertikale Fragmentierung kommt vor allem für Relationen mit einer großen Anzahl von Attributen zum Tragen, wenn an verschiedenen Knoten vorwiegend unterschiedliche Teilmengen der Attribute benötigt werden. In diesem Fall kann durch die vertikale Fragmentierung eine Reduzierung des Kommunikationsaufwandes erreicht werden sowie eine Einschränkung des zu verarbeitenden Datenumfanges. Auf der anderen Seite ist die Rekonstruktion der vollständigen Tupel über Verbunde teuer. Sehr aufwendig sind auch Änderungsvorgänge wie Einfügen oder Löschen von Tupeln, da sie sämtliche vertikalen Fragmente einer Relation betreffen.