gif gif up gif contents
Nächste Seite: 3.4 Fazit Vorige Seite: 3.3.1 Nachrichtenaustausch in objekt-orientierten

3.3.2 Interaktion mit Applikationsprogrammen in aktiven Datenbanken

 

Ein Server, der Notifikationsnachrichten ohne vorherige Anfrage an Clientapplikationen sendet, stellt ein aktives System dar. Aktive Datenbanken sind Datenbanksysteme, die bei bestimmten Ereignissen Regeln auswerten und dann beliebige Aktionen, also auch Notifikation, ausführen können.

Aktive Datenbanken [WC96] erweitern normale Datenbanken um aktive Regeln. Diese bestehen aus drei Komponenten:

  1. Ereignis (event),
  2. Bedingung (condition) und
  3. Aktion (action).

Das Ereignis gibt an, wann die Regel ausgewertet werden soll. Beispiele für Ereignisse sind Einfügung, Löschung, ein bestimmter Zeitpunkt oder ein Ereignis, das durch ein externes Programm hervorgerufen wurde. Bedingungen sind beliebige Datenbankprädikate oder auch Datenbankanfragen. Es ist ebenfalls möglich, externe Applikationsprozeduren aufzurufen, die einen booleschen Wert zurückgeben. Auch bei den Aktionen kann man beliebige Datenbankaktionen wie z.B. Einfügen und Löschen von Elementen, Anfragen oder externe Applikationsaufrufe ausführen.

Im Gegensatz zu passiven Datenbanken, wo auf eine Reaktion der Datenbank immer eine Anfrage vorausgegangen ist, müssen hier die Anwendungsprogramme spontan auf Nachfragen bzw. Daten der aktiven Datenbank reagieren können. Die Anwendungsprogramme können sich für bestimmte Arten von Ereignissen registrieren lassen, über die sie benachrichtigt werden wollen.

Die Interaktion mit Applikationen ist unter anderem in dem relationalen Datenbanksystem Starburst [Wid96] und der objekt-orientierten Datenbank HiPAC [DBC96] realisiert. In Starburst ist auch eine Komponente zur Generierung von aktiven Sichtenwartungsregeln integriert, die es ermöglicht materialisierte Sichten zu warten. Dieses Verfahren ist genauer in Kapitel 4.1.2 beschrieben.



Christoph Quix
31. Juli 1996