Terminierung in aktiven DBMS Friedrich-Schiller-Universität Jena Institut für Informatik Seminar:...

28
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

Transcript of Terminierung in aktiven DBMS Friedrich-Schiller-Universität Jena Institut für Informatik Seminar:...

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

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

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

2

Gliederung

1 Einleitung2 Definition Terminierung 3 Grundlegende Ansätze zur Problemlösung 4 Statistische Analyse

4.1 Erste Stufe der Analyse4.2 Zweite Stufe der Analyse4.3 Umgang mit verbleibenden Zyklen

5 Maßnahmen zur Laufzeit6 Fazit

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

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)

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

4

2 Definition Terminierung

Beispiel:

E: AFTER UPDATE TO Angestellte.Gehalt C: TRUE A: SET Gehalt := NEW.Gehalt – (NEW.Gehalt –

OLD.Gehalt) * 0,1

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

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

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

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

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

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

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

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

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

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

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

10

4 Statische Analyse

unterteilt in zwei Stufen:

1.Stufe: Erzeugung Triggerungsgraph

2.Stufe: Untersuchung der Zyklen

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

11

4.1 Erste Stufe der Analyse

Triggerungsgraph:

Sei R={r1,..rn} die menge der definierten Regeln. Der Triggerungsgraph für R ist ein gerichteter Graph TR=(VR,ER) und hat als Ecken die Menge der Regeln aus R, d.h. VR=R. Er enthält die Kante Aktion kann rj triggern.

srEeiRij':

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

12

4.1 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

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

13

4.1 Erste Stufe der Analyse

Triggerungsgraph für das Beispiel:

Gehaltsanpassung

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

14

4.1 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

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

15

4.1 Erste Stufe der Analyse

Triggerung einer RegelWenn 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

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

16

4.1 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

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

17

4.1 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) undDML-Befehl Objekte berührt (e.C und e.S)DML-Befehl Attribute aus e.A berührt

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

18

4.1 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 ...;

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

19

4.1 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

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

20

4.1 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´

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

21

4.1 Erste Stufe der Analyse

DML-Kommando o kann ein atomares Ereignis e triggern, wenn für mindestens eines der aus o erzeugten Aktions-Events aei und e gilt:

1.

2.aei.C und e.C sind nicht disjunkt und

3. Ø und

4. disjunkte Objektmengen von aei.S und e.S

undDECREASE

INCREASEOaeUPDATEOeOeOaeii

}....)

,{.''.(..

AeAaeAei

...

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

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;

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

23

4.2 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

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

24

4.2 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);

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

25

manuelle Verifikation der ausgegebenen Zyklen Änderung des Regeldesigns keine Änderung zur Laufzeit interaktives

Debugging

4.3 Umgang mit verbleibenden Zyklen

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

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

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

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

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

28

Vielen Dank für dieAufmerksamkeit