Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Terminierung in aktiven DBMS Friedrich-Schiller-Universität Jena Institut für Informatik Seminar: Aktive Datenbanken (Siegmundsburg) Leitung: Prof. Dr.

Ähnliche Präsentationen


Präsentation zum Thema: "Terminierung in aktiven DBMS Friedrich-Schiller-Universität Jena Institut für Informatik Seminar: Aktive Datenbanken (Siegmundsburg) Leitung: Prof. Dr."—  Präsentation transkript:

1 Terminierung in aktiven DBMS Friedrich-Schiller-Universität Jena Institut für Informatik Seminar: Aktive Datenbanken (Siegmundsburg) Leitung: Prof. Dr. K. Küspert Referent: Mike Erler SoSe 2007

2 2 Gliederung 1Einleitung 2Definition Terminierung 3 Grundlegende Ansätze zur Problemlösung 4Statistische Analyse 4.1 Erste Stufe der Analyse 4.2 Zweite Stufe der Analyse 4.3 Umgang mit verbleibenden Zyklen 5Maßnahmen zur Laufzeit 6Fazit

3 3 2 Definition Terminierung terminare (lat.) beenden Ausführung der Aktion einer Regel kann zur Folge haben, dass wiederum eine Situation eintritt, die neue Regeln triggert, dies kann eventuell zu einer endlosen zyklischen Ausführung von Regeln führen keine Terminierung (Nichtterminerung)

4 4 2 Definition Terminierung Beispiel: E: AFTER UPDATE TO Angestellte.Gehalt C: TRUE A: SET Gehalt := NEW.Gehalt – (NEW.Gehalt – OLD.Gehalt) * 0,1

5 5 3 Grundlegende Ansätze zur Problemlösung 1. Verantwortung beim Regeldesigner keine Definition von Regeln, die zur Nichtterminierung führen unbefriedigender Ansatz, große Anzahl von Regeln nicht überschaubar sind

6 6 3 Grundlegende Ansätze zur Problemlösung 2. Eingeschränkte Mächtigkeit der Regelsprache Problem der Nichtterminierung tritt nicht auf Regelsprache verliert Mächtigkeit Definition von Regeln begrenzt viele Anwendungsbereiche/Probleme können nicht mehr bearbeitet werden

7 7 3 Grundlegende Ansätze zur Problemlösung 3. Abbruch von Zyklen zur Laufzeit Definition von nichtterminierenden Regelmengen wird zugelassen Bestimmung einer Anzahl von Durchläufen Abbruch der Zyklen während der Laufzeit unbefriedigender Ansatz: System unnötig belastet oder Fixpunkte können nicht erreichen werden

8 8 3 Grundlegende Ansätze zur Problemlösung 4. Regel-Debugging Definition von nichtterminierenden Regelmengen wird zugelassen Regel-Debugger für den Benutzer Simulation von Regelausführungen Verdachtsmoment beim Nutzer / Überblick

9 9 3 Grundlegende Ansätze zur Problemlösung 5. Statische Analyse Analyse der Regelmenge zur Definitionszeit un- und problematische Regelmengen erkannt keine Ausgabe Terminierung der definierten Regeln für alle möglichen Fälle garantiert

10 10 4 Statische Analyse unterteilt in zwei Stufen: 1.Stufe: Erzeugung Triggerungsgraph 2.Stufe: Untersuchung der Zyklen

11 Erste Stufe der Analyse Triggerungsgraph: Sei R={r 1,..r n } die menge der definierten Regeln. Der Triggerungsgraph für R ist ein gerichteter Graph T R =(V R,E R ) und hat als Ecken die Menge der Regeln aus R, d.h. V R =R. Er enthält die Kante Aktion kann r j triggern.

12 Erste Stufe der Analyse Beispiel: Gehaltsanpassung CREATE RULE Gehaltsanpassung IMMEDIATE ON UPDATE TO Angestellter.Gehalt THEN DO UPDATE Gehaltsanpassung_NEWUPD SET Gehalt := Gehalt-(NEW:Gehalt – OLD:Gehalt)*0,1

13 Erste Stufe der Analyse Triggerungsgraph für das Beispiel: Gehaltsanpassung

14 Erste Stufe der Analyse Beispiel: Gehaltsanpassung terminierend CREATE RULE Gehaltsanpassung IMMEDIATE ON UPDATE TO Angestellter.Gehalt THEN DO UPDATE Gehaltsanpassung_NEWUPD SET Gehalt := Gehalt-(NEW:Gehalt – OLD:Gehalt)*0,1 INCREASE

15 Erste Stufe der Analyse Triggerung einer Regel Wenn der endliche Automat, welcher die Regel assoziiert, in einen akzeptierenden Endzustand gelangt Komplexes Ereignis (E1 AND THEN E2 AND THEN E3 OR E4) AND E5 OR E6 Triggerung nur möglich, wenn atomare Ereignisse E5 oder E6 auftretten

16 Erste Stufe der Analyse Triggerung eines atomaren Ereignisses e = (O,C,A,S) : O ist eine Operation C nicht leerer Ausdruck mit Namen bereits definierter Klassen A Menge von Attributnamen S Selektionsausdruck INCREASE TO Angestellte.Gehalt WHERE Alter >40 O = INCREASE C = Angestellte A = {Gehalt} S = Alter>40

17 Erste Stufe der Analyse Triggerung eines atomaren Ereignisses e = (O,C,A,S) wird durch DML-Befehl getriggert, wenn: e auf die durch den DML-Befehl ausgeführte Operation wartet (e.O) und DML-Befehl Objekte berührt (e.C und e.S) DML-Befehl Attribute aus e.A berührt

18 Erste Stufe der Analyse Triggerung eines atomaren Ereignisses: UPDATE Angestellte WHERE Alter >45 AND Gehalt = 7000 SET...; CREATE RULE r1 AS ON UPDATE TO Angestellte WHERE ALTER < 47 THEN DO...;

19 Erste Stufe der Analyse Aktions-Event: ae eines DML-Befehls o ist ein 4-Tupel ae=(O,C,A,S) O: Menge von Operationen C: einem Klassenausdruck mit definierten Klassen und Mengenoperationen A: Menge von Attributnamen S: einem Ausdruck

20 Erste Stufe der Analyse Beispiel: UPDATE Angestellte WHERE Gehalt <5000 AND Alter >45 SET Gehalt := Gehalt * 1,05 ; O = ´Update` C = Angestellte A = {Gehalt} S = ´Gehalt >5000 AND Alter > 45´

21 Erste Stufe der Analyse DML-Kommando o kann ein atomares Ereignis e triggern, wenn für mindestens eines der aus o erzeugten Aktions-Events ae i und e gilt: 1. 2.ae i.C und e.C sind nicht disjunkt und 3. Ø und 4. disjunkte Objektmengen von ae i.S und e.S

22 22 Eingabe: Menge von Regeln R Ausgabe: Menge von starken Zusammenhangskomponenten von TR VAR TR: TUPLE OF (V:SET OF Regeln; E: SET OF Kanten : TUPLE OF (von :Regel; nach: Regel;)); ri,rj: Regel; ev: SET OF atomare Ereignisse; q: Integer; dml: DML-Befehl; BEGIN TR.V = R; TR.E = {}; FOR ALL ri IN R DO FOR ALL rj IN R DO FOR ALL ev IN rj.Ev WHERE EXISTS q in Qj: deltaj(q,ev)=Fj DO FOR ALL dml IN ri.AK DO IF triggers(dml,ev) THEN TR.E UNION(ri,rj); RETURN (Starke_Zusammenhangskomponenten(TR)); END;

23 Zweite Stufe der Analyse Überprüfung des Graphen, ob Streichen einer Kante möglich jede Kante wird in einem Algorithmus geprüft Streichung einer Kante Berechnung starke Zusammenhangskomponente Ausgabe: Quellen möglicher Nichtterminierung

24 Zweite Stufe der Analyse Beispiel: CREATE RULE Weniger_Hobbies IMMEDIATE ON DECREASE TO Angestellte.Hobbies THEN DO UPDATE Weniger_Hobbies_NEWUPD Set Gehalt := Gehalt-50; CREATE RULE Weniger_Gehalt IMMEDIATE ON DECREASE TO Angestellte.Gehalt THEN DO UPDATE Weniger_Gehalt_NEWUPD SET Hobbies := Hobbies-LAST(Hobbies);

25 25 manuelle Verifikation der ausgegebenen Zyklen Änderung des Regeldesigns keine Änderung zur Laufzeit interaktives Debugging 4.3 Umgang mit verbleibenden Zyklen

26 26 keine Überwachung maximal erlaubte Anzahl von Zyklusdurchläufen Warnung an DBA bei Erreichen einer Grenze von maximal erlaubten Zyklusdurchläufen Rückgabe einer Warnung an die Applikationen, die Regeln ausgelöst haben, die am Zyklus beteiligt sind Überwachung von Änderungen nach jedem Durchlauf des Zyklus 5 Maßnahmen zur Laufzeit

27 27 Problem der Terminierung Beachtung schenken meist nicht überschaubar für Regeldesigner Tool nutzen Betrachtung der auftretenden Zyklen zur Definitionszeit und zur Laufzeit 5 Fazit

28 28 Vielen Dank für die Aufmerksamkeit


Herunterladen ppt "Terminierung in aktiven DBMS Friedrich-Schiller-Universität Jena Institut für Informatik Seminar: Aktive Datenbanken (Siegmundsburg) Leitung: Prof. Dr."

Ähnliche Präsentationen


Google-Anzeigen