[zurück] [vorwärts]
 
4. Vergleich der beschriebenen Methoden

Nach der vorangegangenen Beschreibung der Möglichkeiten zur Partitionierung bzw. Fragmentierung von Datenbeständen einer Datenbank und Verteilung dieser auf verschiedenen Festplatten lohnt sich ein Vergleich der beiden Methoden. Auch wenn oder gerade weil es sich um zwei recht verschiedene Ansätze handelt: der Einsatz eines Disk-Arrays kümmert sich im Prinzip ja nicht darum, was in den Files, die es verteilt, gespeichert ist, also ob es Relationen oder etwas anderes ist. Die Fragmentierung auf DBS-Ebene hingegen betrachtet ausschließlich Relationen und schert sich wenig darum, wie genau diese dann letztendlich gespeichert werden. Wo liegen also die Vor- und Nachteile beider Methoden?
 

 
Partitionierung mittels Disk-Arrays
Fragmentierung auf DBS-Ebene
"Sequentielle" Aspekte der Partitionierung
Partitionierung immer in eine Sequenz von Bits; diese werden in Blöcke zusammengefaßt, wobei zwei in einem Block nebeneinander liegende Bits auch im Ursprungsfile nebeneinander lagen.
Fragmentierung in eine Teilmenge von Tupeln (horizontal) oder von Attributen (vertikal); die Reihenfolge der Tupel bzw. Attributen spielt in den Fragmenten (wie schon in der Ursprungsrelation) keine Rolle
"Semantische" Aspekte der Partitionierung
Die Semantik dessen, was in den Files steht, bleibt im Großen und Ganzen bei der Partitionierung unberücksichtigt. Indirekt spielt es bei der Allokation bzw. Lastbalancierung eine Rolle, wenn die Partitionen so verteilt werden, daß die Platten durch die Lese- und Schreiboperationen der Anwendungen gleichmäßig ausgelastet werden.
Kernpunkt, wenn entschieden werden soll, wo und wie fragmentiert wird. Dies wird durch den Zugriff der Anwendungen auf die Relation bestimmt; die (anwendungsorientierte) Semantik der Daten ist also entscheidend.
Berücksichtigung der Kosten
Geschieht mittels Lastbalancierung. Dadurch verhindert man, daß längere Wartezeiten beim Zugriff auf eine Platte entstehen, steigert also letztendlich die Geschwindigkeit des Systems und verkürzt die "Wartezeit" auf die Daten. Da Zeit und Kosten proportional sind, verringern sich auch die Kosten.
Ist in den Algorithmen zur Fragmentierung bereits implementiert. Vor allem durch die starke Berücksichtigung der Anforderung an eine Fragmentierung seitens der Anwendungen werden z.B. unnötige Datentransfer oder Lesevorgänge vermieden.
Es zeigt sich also, daß die unterschiedlichen Methoden aufgrund ihrer verschiedenen Ansätze auch unterschiedlichen Anforderungen genüge leisten. Enthält die Datenbank große Relationen mit viel Speicherplatzbedarf und der Computer, auf dem die Anwendungen laufen, einen (schnellen) Prozessor, ist wahrscheinlich der Einsatz eines Disk-Arrays sinnvoller, um möglichst schnell möglichst viele Daten zum Prozessor zu transportieren, damit die Anfrage abgearbeitet werden kann. Handelt es sich aber z.B. um ein Multiprozessorsystem, so ist es sinnvoller, die Relationen auf DBS-Ebene zu fragmentieren und dann auf den Platten des Systems zu verteilen, weil dann die Möglichkeit einer parallelen Anfragebearbeitung z.B. über Teilfragmente einer Relation ideal genutzt werden kann. Da kleinere Relationen gelesen werden müssen, ist dann die Parallelität beim I/O nicht mehr so entscheidend.


Erstellt: 11.01.1998
Zuletzt geändert: 11.01.1998
Autor: Gerrit Gragert