Gewöhnliche Programmierschnittstellen für Datenbanksysteme sind nur sehr schwierig einzusetzen und erfordern einen großen Programmieraufwand. Die Verkapselung der Zugriffsfunktionen auf das DBMS in eine objekt-orientierte Programmiersprache vereinfacht zwar die Anbindung eines Applikationsprogramms an das DBMS, jedoch bleiben die Probleme bei der Abbildung der Daten des DBMS auf die Daten des Anwendungsprogramms bestehen.
Eine wesentliche Erleichterung stellen in dieser Hinsicht die Erweiterung von relationalen Datenbanken auf der Basis von Sichtenobjekten dar. Auch objekt-orientierte Datenbanksysteme ermöglichen die persistente Speicherung von Objekten des Anwendungsprogramms. Die Möglichkeit zur Code-Generierung aus einem Datenbankschema ist ähnlich wie bei der hier vorliegenden Problemstellung.
CORAL ist wegen seiner deduktiven Eigenschaften am ehesten mit dem hier vorliegenden System ConceptBase zu vergleichen. Allerdings ist die Erweiterbarkeit um benutzerdefinierte Typen im Vergleich zu anderen Systemen sehr aufwendig. Auch die Vermengung von Datenbank und Anwendungsprogramm zu einer Applikation ist im Hinblick auf Datensicherheit nicht sinnvoll. Des weiteren können die benutzerdefinierten C++-Klassen nur durch C++-Code mit Objekten instanziiert werden, eine implizite Konstruktion von Objekten durch Regeln ist nicht möglich.
Am Beispiel der objekt-orientierten Datenbank O
wird deutlich, daßbei der Abbildung
der Daten zwischen zwei objekt-orientierten Systemen keine Tranformationen von Anfragen
oder Datenbankrelationen nötig ist und die Struktur der Objekte im Anwendungsprogramm
erhalten bleibt. Das vereinfacht auch hier die Abbildung der Sichten auf C++-Datentypen.
CORBA ermöglicht den Aufruf von Objektmethoden in verteilten objekt-orientierten Systemen. Bei der hier vorliegenden Problemstellung ist die Situation etwas anders: das DBMS veranlaßt durch Änderungsnotifikation Methodenaufrufe in der Client-Applikation. Das DBMS kennt zwar die Struktur der Objekte im Applikationsprogramm, jedoch ruft das DBMS nicht direkt die Methoden auf, sondern es verschickt nur Notifikationsnachrichten mit den benötigten Informationen für die Methoden. Die Aufgabe der Nachrichtenverarbeitung und die Methodenaufrufe übernimmt die von ConceptBase bereitgestellte Schnittstelle.
Grundsätzlich ist das Verhalten von aktiven Datenbanken sehr ähnlich zur Problemstellung der Diplomarbeit: bei Einfügungen oder Löschungen (Ereignisse) werden Änderungen für Sichten berechnet und Applikationen benachrichtigt (Aktionen). Durch den Notifikationsmechanismus erhält ConceptBase auch eine aktive Komponente. Während man sich bei aktiven Datenbanken auf die effiziente Auswertung und möglichst allgemeine Verwendbarkeit von Regeln konzentriert, liegt bei dieser Diplomarbeit der Schwerpunkt auf der Automatisierung der Programmierung von Sichten für Anwendungsprogramme.
Christoph Quix