12 Föderative Datenbanksysteme

12.4 Einsatz einer Multi-DB-Anfragesprache

Die Probleme der Schemaintegration lassen in vielen Fällen lose gekoppelte FDBS als sinnvollere Alternative erscheinen, insbesondere bei einer großen Anzahl von Datenbanken sowie Datenbanken unterschiedlicher Unternehmen. Zur Erhöhung der Autonomie erfolgt keine Definition eines globalen Schemas, sondern der Benutzer sieht mehrere Datenbanken. Er kann jedoch mit einer einheitlichen Multi-DB-Anfragesprache auf die einzelnen Datenbanken zugreifen, wobei pro Operation Daten verschiedener Knoten verknüpft werden können. Ferner soll die Sprache eine Unterstützung zur Behandlung semantischer Heterogenität bieten. Derzeit folgen bereits einige große Information-Retrieval-Systeme diesem Ansatz, wobei Suchanfragen über viele unabhängige Datenbanken formuliert werden können [LMR90]. Im deutschen Bildschirmtext-System ist es auch möglich, mit einer einheitlichen Benutzeroberfläche auf zahlreiche Datenbanken lesend zuzugreifen, jedoch kann dabei nur mit jeweils einer Datenbank gearbeitet werden.

Um eine ausreichende Flexibilität für den Zugriff auf mehrere Datenbanken zu erhalten, sollte eine relationale Multi-DB-Anfragesprache nach [LMR90] u.a. folgende Eigenschaften unterstützen:

Diese Eigenschaften werden (bis auf Änderungsabhängigkeiten) von dem Sprachvorschlag MSQL unterstützt, der eine Erweiterung von SQL darstellt und im MRDSM-Prototyp verwendet wird [LMR90]. Das folgende Beispiel illustriert die Verwendung einiger MSQL-Anweisungen.

Beispiel 12-3

Für die lokalen Datenbanken UNIBIB und STADTBIB aus Beispiel 12-1 kann mit folgender MSQL-Anweisung die Multi-Datenbank BIB erzeugt werden (MSQL-Schlüsselwörter sind kursiv gehalten):

              CREATE MULTIDATABASE  BIB  (UNIBIB, STADTBIB). 
Um alle Bücher zu ermitteln, die in beiden Datenbanken vorliegen, könnte folgende Join-Anfrage verwendet werden:

               USE  BIB
               SELECT y.Titel
               FROM UNIBIB.BUCH% x, STADTBIB.BUCH% y 
               WHERE x.ISBN = y.ISBN.
Die USE-Anweisung dient dabei zur Festlegung der Datenbank(en), auf die sich die Query bezieht. Das %-Zeichen in den Relationennamen dient als Abkürzung für eine beliebige Zeichenfolge. Damit bleiben Umbenennungen der lokalen Relationennamen ohne Auswirkungen auf die Anfrage, solange das Präfix "BUCH" erhalten bleibt (Erhöhung der Autonomie).

Die folgende Sicht-Definition illustriert den Einsatz eines dynamischen Attributs zur Umwandlung von Preisangaben für Bücher amerikanischer Verlage, welche durch eine Verlagsnummer von über 1000 gekennzeichnet seien.

               CREATE VIEW  US-BUCH (ISBN, Titel, Autor, DMPreis)
               USE BIB
               D-COLUMN (Preis) DMPreis = Preis * 1,70
               SELECT ISBN, Titel, Autor, Preis
               FROM STADTBIB.BUCH
               WHERE Vnr > 1000. 

Die Unterstützung von Sichten auf Multi-Datenbanken ermöglicht eine Erhöhung der Verteilungstransparenz. Aufgrund der Änderungsproblematik auf Sichten sind dabei jedoch Änderungen nur sehr eingeschränkt möglich. Auch beim direkten Zugriff auf die einzelnen Datenbanken bereiten Änderungen Probleme, da der Benutzer weitgehend für die Überprüfung globaler Integritätsbedingungen sowie für die Redundanzwartung verantwortlich ist. Dies kann durch die Definition von Abhängigkeiten zwischen Datenbanken erleichtert werden, setzt jedoch die konsistente Spezifikation dieser Abhängigkeiten durch einen globalen DBA voraus, was wiederum die Autonomie beeinträchtigt. Aus diesen Gründen sind derzeit meist nur Lesezugriffe auf Multi-Datenbanken möglich.

Damit der Ansatz der lose gekoppelten FDBS eine größere Bedeutung erlangen kann, ist eine Standardisierung der Multi-DB-Anfragesprache erforderlich. Die im Rahmen von SQL Access vorgenommenen Spracherweiterungen von SQL gehen in diese Richtung, jedoch bleibt die Funktionalität noch weit hinter oben genannten Forderungen zurück. Insbesondere kann innerhalb einer DB-Operation nicht auf mehrere Datenbanken zugegriffen werden.