Tendenzen auf dem Gebiet der werteilten Datenbanksysteme

25.05.1979

Von George A. Champine. Ist Direktor im Advanced-Systems-Bereich für Großcomputersysteme bei Sperry Univac. Während seinen 20 Jahren bei Sperry Univac hat Champine in verschiedenen Stellen auf den Gebieten der Software- und Systementwicklung gearbeitet. Zuletzt war er als Senior Staff Consultant für die Applikation fortgeschrittener Technologien in Großcomputersystemen verantwortlich.

Champine besitzt darüber hinaus eine Gastprofessur an der University of Minnesota und ist Autor zahlreicher Artikel, die in internationalen Fachpublikationen veröffentlicht wurden.

Der gegenwärtige Stand der Datenbanksysteme lasse sich durch zwei Haupttendenzen charakterisieren, stellte George A. Champine, Direktor im "Advanced Systems"- Bereich für Großcomputersysteme bei Sperry Univac, auf einem Pressesymposium in Zürich fest (CW Nr. 19 vom 18. Mai 1979): Rasch zunehmende Benutzerakzeptanz und rascher technischer Fortschritt auf logischer, physikalischer und architektonischer Ebene. Die COMPUTERWOCHE beginnt in dieser Ausgabe mit der deutschen Fassung eines Champine-Berichts, der "Tendenzen auf dem Gebiet der verteilten Datenbanksysteme" aufzeigt.

Von Experten wird die Ansicht vertreten daß ein verteiltes System erst bei der Verteilung der Daten von Nutzen ist. Sicher spielen Daten eine entscheidende und zunehmend wichtige Rolle bei modernen Computersystemen. Frühere Systeme wurden mit zentralisierten Datenbanken realisiert, auch wenn andere Funktionen verteilt waren. Die wenigen Organisationen, die verteilte Datenbanksysteme realisiert haben, haben ihre eigenen Systeme entwickelt, weil bei den Herstellern keine Software zur Anwendung verteilter Datenbanken erhältlich war.

Ziele und Anforderungen

Die Ziele einer Verteilung von Daten über die Knotenpunkte eines verteilten Computersystems - im Gegensatz zur konventionellen zentralisierten Lösung - sind im großen und ganzen die gleichen wie für verteilte Systeme überhaupt. Folgende Ziele sind jedoch von besonderer Bedeutung für Datenbanken:

- Leistung - bessere Antwortzeiten bei der Verarbeitung

- Kosten - Reduktion der Benutzung und damit der Kosten für den Datenverkehr

- Mehrbenutzbarkeit - gemeinsame Benützung von Daten an verschiedenen geographisch getrennten Knotenpunkten

- Zugriff ortstransparent - einheitlicher logischer Zugriff

- Zuverlässigkeit - das System muß adäquat weiterfunktionieren trotz dem Verlust eines oder mehrerer Knotenpunkte

- Einstellbarkeit - die Daten müssen so verteilt werden können, daß sie an der Stelle des stärksten Gebrauchs gespeichert werden

- Wachstum - das System muß eine Vergrößerung der Datenbank mit den verfügbaren Knotenpunkten oder via Addition von Knotenpunkten ermöglichen.

Mehrere dieser Ziele können durch Redundanz erreicht werden: Vor allem Leistung, Zuverlässigkeit, Einstellbarkeit und Wachstum. Redundanz ist jedoch auch mit dem Problem der Integrität verbunden.

Die obengenannten Faktoren stellen allesamt Vorteile des Benutzers bei der Verwendung von verteilten Datensystemen dar. Es gibt weitere Eigenschaften die jetzt auch bei zentralisierten Systemen integriert wurden und bei verteilten Systemen weiterhin notwendig sind. Auf einer integrierten Gesamtsystembasis umfassen sie die folgenden Punkte:

- Fehlerbehandlung - das System muß automatisch Fehler, verlorene Meldungen oder Systemausfall behandeln können

- Sicherheit - der Benützer muß die Möglichkeit haben, Zugriffsprivilegien

zu definieren, die der Systemverwalter durchsetzen kann

- Reorganisation - Daten müssen zur Verbesserung der Effizienz lokal oder global reorganisiert werden können

- Effizienz - das System muß die Ressourcen effizient nutzen, indem es entsprechende Algorithmen für eine maximale Simultanität und eine niedrige Transaktionsrückweisung auswählt

- Kohärenz - Mehrfachkopien von Daten müssen konsistent gehalten werden, ohne daß dies zu unvernünftigen Verzögerungen bei der Aktualisierung führt

- Stillstand - Stillstände dürfen die Beendigung von Transaktionen nicht beeinträchtigen

- "Fairness" - alle Plätze müssen gleiche Priorität haben.

Diese Anforderungen werden durch die Datenverteilung eindeutig schwieriger und komplexer gemacht.

Obwohl diese Anforderungen nicht in der Reihenfolge ihrer Priorität angeführt sind, handelt es sich bei der Fehlerbehandlung wahrscheinlich um die wichtigste. Fehlerbehandlung ist in der Tat der Hauptfaktor, der bei der Konstruktion der gegenwärtigen zentralisierten Datenverwaltungssysteme die größten Beschränkungen auferlegt. Bei verteilten Systemen nimmt dieser Faktor noch an Bedeutung zu. Die anderen Anforderungen sind ebenfalls wichtig, und jedes annehmbare Protokoll muß in der Lage sein sie alle zu bewältigen.

Zentralisierte Datenbanken

Vor der Besprechung der verteilten Datensysteme ist es angezeigt auf die Eigenschaften eines zentralisierten Datensystems einzugehen. Im folgenden werden Datenbanksysteme behandelt, wobei Dateisysteme als Spezialfall gelten sollen, bei welchen die Datendefinition und die Zugriffsmethode implizit in den Benützeranwendungsprogrammen enthalten sind.

Ein herkömmliches zentralisiertes Datensystem gemäß Abbildung umfaßt:

- Anwendungssoftware,

- Betriebssystem,

- Daten

- physische Speicherzuordnung,

- Datenverwaltungssoftware,

- Datendefinition (System),

- Datendefinition (Benutzer).

Benutzer und Anwendungsprogramm haben eine Schnittstelle zum Datenverwaltungssystem über die Betriebssoftware, welche die gesamte Massenspeicherung steuert. Wenn wir der Codasyl-Terminologie folgen, so werden die Daten zunächst gemäß Spezifikation der Datendefinitionssprache in die Datenbank geladen. Dies erzeugt auch die Systemkopie der Datendefinition oder das Schema. Der Benutzer kann auch seine eigene besondere Definition des Datenformats definieren. Dies ist das Subschema. Die Daten werden nach den Prozessen der Datenmanipulationssprache manipuliert, deren Anweisungen im Fall der Codasyl-Spezifikation in eine allgemeine Sprache wie Cobol eingebettet sind. Die Daten werden gespeichert gemäß der physischen Speicherzuordnung, welche durch das Betriebssystem bestimmt wird.

Bei einem verteilten System werden diese datenbezogenen Komponenten an den Knotenpunkten des Systems plaziert. Sofort stellt sich die Frage nach der Art der Verteilung der Anwendungssoftware, der Daten, der Datenverwaltungssoftware und der Datendefinition.

Wenn Daten an mehr als einem Knotenpunkt gespeichert werden, sind entsprechende Datendefinition und Datenverwaltungssoftwaremöglichkeiten für den Zugriff und die Verarbeitung dieser Daten notwendig. Wenn Benutzeranforderung und Daten an verschiedenen Knotenpunkten existieren, müssen auch die Datenverwaltungsfunktionen verteilt werden.

Die Integration der Datensystemtechnik und Netzwerkumgebung führt zu neuen Problemen und zum Bedarf an neuen Funktionen. Es besteht ein entscheidendes Bedürfnis nach einer netzwerkumfassenden Definition (oder einem Verzeichnis) der Lokalisierung und der Eigenschaften aller Daten im System, einschließlich Teilungs- und Replikationsmethoden. Wenn nun das System eine Benutzeranfrage für den Datenzugriff erhält, muß zuerst die Lokalisierung der Daten bestimmt werden. Wenn die Daten nicht lokal sind, muß der Knotenpunkt, von dem aus die Anfrage kommt, den entsprechenden Knotenpunkt bestimmen und mit ihm kommunizieren. Sind die Knotenpunkte nicht kompatibel, müssen Übersetzungsfunktionen bereitgestellt werden, um eine solche Kompatibilität zu erreichen. Dies kann auch Anfragenübersetzung und/oder Daten-Umformatierung umfassen.

Ein verteiltes Datensystem (siehe Abbildung 2) umfaßt die gleichen funktionellen Komponenten wie ein zentralisiertes System, enthält jedoch noch zusätzliche Komponenten: Datenverkehrsausgang, Netzdatenverzeichnis und Netzdatenverwaltungssystem.

Das Netzdatenverzeichnis muß die logische Information enthalten, welche die verschiedenen Dateneinheiten mit dem Knotenpunkt (oder den Knotenpunkten) im Beziehung setzt, an welchen sie lokalisiert sind. Die physische Lokalisierung des Knotenpunkts und die notwendige Leitinformation ist wie üblich im Verkehrsausgang enthalten. Dieser spielt im verteilten System die genau gleiche Rolle wie in einem zentralisierten Datensystem.

Es ist zu beachten, daß verteilte Knotenpunkte nicht "komplett" sein müssen. Zum Beispiel können einige Knotenpunkte Daten ohne lokale Benutzer enthalten, während andere Benutzer ohne lokale Daten haben können.