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:
- Unterstützung erweiterter Objektnamen, welche den logischen Namen der lokalen Datenbank beinhalten. Damit wird auch die Eindeutigkeit von Objektnamen sichergestellt.
- Definition und explizite Benennung von "Multi-Datenbanken" durch Spezifikation der zu beteiligenden lokalen Datenbanken.
- Erzeugen, Ändern und Löschen von Relationen im Import-Schema einer Multi-DB. Für die Attribute einer Relation sollen dabei automatische Konversionen von Datentypen unterstützt werden. Man spricht hierbei auch von dynamischen Attributen, da für sie die Datenwerte zur Zugriffszeit dynamisch über eine Transformationsfunktion konvertiert werden.
- Lese- und Änderungsoperationen über mehrere lokale Datenbanken. Insbesondere sollen verteilte Joins über Attribute mit kompatiblen Wertebereichen möglich sein.
- Definition von Sichten (Views) auf Multi-Datenbanken.
- Definition von Abhängigkeiten zwischen Datenbanken durch den DBA, z.B. um äquivalente bzw. kompatible Wertebereiche oder Änderungsabhängigkeiten spezifizieren zu können. Änderungsabhängigkeiten (update dependencies) können zur Überwachung von globalen Integritätsbedingungen sowie zur automatischen Wartung von Redundanz genutzt werden (Abweisung bestimmter Änderungsoperationen bzw. automatische Durchführung von Folgeänderungen).
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.