Upload
pankraz-wollert
View
106
Download
0
Embed Size (px)
Citation preview
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
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
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
2 Definition Terminierung
Beispiel:
E: AFTER UPDATE TO Angestellte.Gehalt C: TRUE A: SET Gehalt := NEW.Gehalt – (NEW.Gehalt –
OLD.Gehalt) * 0,1
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
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
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
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
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
4 Statische Analyse
unterteilt in zwei Stufen:
1.Stufe: Erzeugung Triggerungsgraph
2.Stufe: Untersuchung der Zyklen
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':
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
13
4.1 Erste Stufe der Analyse
Triggerungsgraph für das Beispiel:
Gehaltsanpassung
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
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
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
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
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 ...;
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
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´
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
...
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
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
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);
25
manuelle Verifikation der ausgegebenen Zyklen Änderung des Regeldesigns keine Änderung zur Laufzeit interaktives
Debugging
4.3 Umgang mit verbleibenden Zyklen
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
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
Vielen Dank für dieAufmerksamkeit