Deduktive und Aktive Datenbanken

Werbung
Deduktive und Aktive Datenbanken
• Idee: Mehr Funktionalität (= Semantik) zu den Daten bzw. zu den Operationen auf den Daten
Operationen auf den Daten
• Deduktive Datenbanken
d k
b k
– Idee: Inferenz in die Datenbank,
Beispiel. Transitivität: Vater(x,y) und Vater(y, z) impliziert Großvater(x,z)
– Datenbank + (deduktive) Regeln
– Basiert auf formale Logik (eingeschränkte PL I)
– Regelsprache ist DATALOG – Relationen werden als Menge von Literalen (Faktenmengen betrachtet)
– Um Mengen gut verarbeiten zu können: Vorwärtsauswertung
– Gegenüber Wissensbasierten Systemen Ergänzung um Persistenz – Mehrbenutzerfähigkeit oft nicht weiter betrachtet, da nur Abfragen von expliziten und impliziten Daten untersucht
20. Prof. Jasper: Datenbanksysteme
1
Deduktive Datenbanken
• Begriffsbildung
–
–
–
–
Prädikat definiert durch Name und Stelligkeit
g
Argumente konstant => Fakt (entspricht Eintrag in einer Relation)
Regel: „Kopfliteral“ gilt dann, wenn alle „Rumpfliterale gelten“
Argumente einer Regel können Variablen sein, Scope einer Variabel ist die Regel
anton
chef(anton, bernd).
chef(anton, dirk).
chef(anton, fred).
chef(bernd, hugo).
chef(bernd, egon).
chef(fred, hugo_2).
chef(fred erwin).
chef(fred,
erwin)
bernd
h
hugo
vorgesetzter(X, Y) :- chef(X, Y).
vorgesetzter(X, Y) :- chef(X, Z),
vorgesetzter(Z,Y).
untergebener(X,Y) :- vorgesetzter(Y,X).
? vorgesetzter(X,
?vorgesetzter(X hugo
hugo_2).
2)
„Tabelle“:
liefert
20. Prof. Jasper: Datenbanksysteme
egon
dirk
fred
h
hugo_2
2
vorgesetzter fred
anton
erwin
i
hugo_2
hugo 2
hugo_2
2
Deduktive Datenbanken
• Auswertung von DATALOG‐Programmen
– „Faktdefinierte Prädikate“ werden durch Auflistung der gespeicherten Wertekombinationen ausgewertet (entspricht der Ausgabe der explizit gespeicherten Relation)
– Regeldefinierte Prädikate sind über den Kopf einer oder mehrerer DATALOG‐Regeln Regeldefinierte Prädikate sind über den Kopf einer oder mehrerer DATALOG‐Regeln
definiert
– DATALOG‐Programme müssen sicher (safe) sein:
• sie generieren eine endliche Faktenmenge
• ist i.a. nicht entscheidbar
i ti
i ht t h idb
• Beispiele
– hohes_Gehalt(Y) :‐ Y > 60000.
versus
– hohes_Gehalt(Y) :‐ angestellter(X), gehalt(X, Y), Y > 60000.
– hohes_Gehalt(Y) :‐ Y > 60000, angestellter(X), gehalt(X, Y).
• Die beiden letzten Regeln sind sicher
– Anmerkung: relationale Operatoren lassen sich in DATALOG ausdrücken
A
k
l i
l O
l
i h i DATALOG
dü k
20. Prof. Jasper: Datenbanksysteme
3
Deduktive Datenbanken
– Das Ergebnis jeder DATALOG‐Anfrage ist eine Relation (d.h. nur einzelne Prädikate als Anfrage!)
– Nicht‐rekursive Anfragen p :‐
Ni ht k i A f
p1, ..., pn. werden wie folgt berechnet: Berechen
1
d
i f l tb
h t B
h erst alle t ll
Relationen zu p1 bis pn, anschließend die Relation zu p.
– Nicht‐rekursive DATALOG‐Anfragen lassen sich in einen relationalen Ausdruck g
transformieren und dann vom DBMS bearbeiten.
– Fü
Für rekursive Anfragen betrachte:
k i A f
b
h
• Prädikate, die als Relationen in der Datenbank gespeichert sind heißen EDB‐
(
DB))
Prädikate (extensionale
• Prädikate, die über Regeln definiert sind heißen IDB‐Prädikate (intensionale DB)
• EDB und IDB sind disjunkt
• Ersetze „:‐“ in IDB durch Gleichheit „=“ => der „kleinste Fixpunkt“ des so entstehenden Gleichungssystems ist Antwortmenge rekursiver Anfragen
20. Prof. Jasper: Datenbanksysteme
4
Deduktive Datenbanken
• Naive Auswertung rekursiver DATALOG‐Programme
– Voraussetzung: Umschreibung des DATALOG‐Programms
– Jedes Prädikat wird als Relation betrachtet (Pi entspricht Ri)
– Jedes Prädikat wird definiert als relationaler Ausdruck (Ei) über alle Prädikate: Ri = Ei(R1
Ei(R1, ..., Rn)
R )
– Eingabe: Ein System algebraischer Gleichungen und die EDB
– Ausgabe: Die Relationen R1, ... Rn.
Ausgabe: Die Relationen R1, ... Rn.
For i = 1 to n do begin
if Pi aus IDB then
Pi aus IDB then Ri = 

else Ri = Tupelmenge aus EDB
end
Repeat
condition = true;
for i = 1 to n do Si = Ri;
for i = 1 to
i = 1 to n do n do
begin
Ri = Ei(S1, ..., Sn);
if Ri  Si then
Si then condition = false
false
end
until conditon;
20. Prof. Jasper: Datenbanksysteme
5
Deduktive Datenbanken
– Beispiel:
v(X,Y) :‐ e(X,Y).
v(X Y) :‐ v(X,Z), e(Z,Y).
v(X,Y) :‐
v(X Z) e(Z Y)
Rv(X,Y) = zy(Rv(X,Z)  Re(Z,Y)) Rv(Z,Y)
Re ({(bert, alice), (bert, george), (alice, derek), (alice, pat), (derek, frank)}
• Rv(0) = leer
• Rv(1) = {(bert, alice), (bert, george), (alice, derek), (alice, pat), (derek, frank)}
• Rv(2) = {(bert, alice), (bert, george), (alice, derek), (alice, pat), (derek, frank), (bert, derek), (bert, pat), (alice, frank)}
• Rv(3) = {(bert, alice), (bert, george), (alice, derek), (alice, pat), (derek, frank), (bert, derek), (bert, pat), (alice, frank), (bert, frank)}
• Rv(4) = {(bert, alice), (bert, george), (alice, derek), (alice, pat), (derek, frank), (bert, derek), (bert, pat), (alice frank) (bert frank)}
(alice, frank), (bert, frank)}
•
•
Weitere Methoden nutzen Zusatzinformation des Programms / der Abfragen, z. B. Magic‐
Set‐Methode (siehe Literatur)
Negation ist ein Problem: minimaler Fixpunkt existiert i. a. nicht! Daher stratifizierte Programme: keine Negation durch Rekursion!
Programme: keine Negation durch Rekursion!
20. Prof. Jasper: Datenbanksysteme
6
Aktive Datenbanken
• Datenbank + ECA‐Regeln = erweiterte Form der Trigger
– ECA‐Regel:
g rule_spec
::=
"RULE" rule_id
"ON" event_id
"DO" action_id
"STATUS" active | deactive
["EXPLAIN"string]
[
EXPLAIN string]
"END_RULE"
– Ereignisse: atomar oder komplex:
• Atomare Ereignisse
– Einfügen, Löschen und Ändern sowie Lesen von Daten
– Ereignisse des Zeitmodells: Das zugrundeliegende Zeitmodell basiert auf Teilen des Intervalkalküls erweitert um absolute und relative Zeitpunkte als Zeitobjekte. Zeitereignisse werden durch Zeitpunkte (T_POINT) und Zeitintervalle (T_INTERVAL) ausgewiesen. Sie können absolut, durch Angabe von [Jahr.Monat.Tag/Stunde:Minute] (bei Intervallen durch Angabe des exakten, absoluten Anfangs‐ und Endzeitpunkts), sowie relativ in Bezug zu einem anderen Ereignis (E1 + [0.0.0/00:20]) definiert werden.
– Weitere atomare Ereignisse: Durch Integration von aktiven abstrakten Datentypen (AADT, siehe auch ADT für ORDMBS, z.B. Statistik‐AADT, Geo‐AADT, User‐Interface‐
AADT
20. Prof. Jasper: Datenbanksysteme
7
Aktive Datenbanken
• Komplexe Ereignisse als Ausdrücke einer entsprechenden Ereignissprache:
event_type
t t
::=
simple_event
i l
t
| comp_event
| "["simple_event "WEHRE" condition"]"
| "["comp
[ comp_event
event "WERE"
WERE condition
condition"]"
]
simple_event
::=
database_event
| time_event
| user_event
| geo_event
| statistic_event
comp_event
::=
event_id
| event_type "AND" event_type
| event_type "OR" event_type
| "NOT" event_type
| "SEQ" "("event_type
"("
t t
{" " event_type}")"
{","
t t
}")"
| "COUNT" num "OF" event_type
Desweiteren kann jedes Ereignis (atomar oder komplex) mit einer eindeutigen Identifikation versehen werden, indem der
gebildete Ausdruck als Objekt spezifiziert wird.
event_spec
::=
"EVENT" event_id
"DEFINITION" event_type
"END_EVENT"
20. Prof. Jasper: Datenbanksysteme
8
Aktive Datenbanken
– Bedingungen:
• Sind hier mit den Ereignissen verknüpft
• Andere Ansätze separate Bedingungen entsprechend der„WHERE“‐Klausel von SQL
– Aktionen:
• Hier analog der externen Prozeduren von SQL:2003:
g
Q
action_spec
::=
"ACTION" action_id ["("parameter_list")"]
"METHOD CALLS" "("method_name
"METHOD_CALLS"
"(" th d
["("
["("parameter_list")"]
t
li t")"]
{","method_name["("parameter_list")"]}
")"
"END ACTION"
"END_ACTION"
20. Prof. Jasper: Datenbanksysteme
9
Aktive Datenbanken
• Anwendungsbeispiel: Geschäftsregeln und ‐prozesse
• Geschäftsregel
• Beschreibt
Beschreibt Bedingungen bzgl. betriebswirtschaftlich relevanter Objekte (Kunde, Bedingungen bzgl betriebswirtschaftlich relevanter Objekte (Kunde
Vertrag, Rechnung, Lieferung, Mitarbeiter, ...).
• Geschäftsprozess
• steuert und dokumentiert die Durchführung von Geschäftsvorfällen unter Berücksichtigung von Geschäftsregeln.
• besteht aus einer partiell geordneten Menge von Funktionen auf besteht aus einer partiell geordneten Menge von Funktionen auf
betriebswirtschaftlich relevanten Objekten (Auftragsbearbeitung, Krankmeldung, etc.).
• integriert externe Partner
20. Prof. Jasper: Datenbanksysteme
10
Aktive Datenbanken
• Beispiel: Krankmeldung (Geschäftsprozess)
Mitarbeiter
Personalabteilung
Geschäftsregel:
5 Tage
“Falls ein erkrankter Mitarbeiter nach 5 Tagen die Arbeit nicht wieder aufgenommen hat: Auftragsbearbeitung anpassen.”
20. Prof. Jasper: Datenbanksysteme
Fachabteilung
11
Aktive Datenbanken
• Beschreibung der obigen Geschäftsregel mittels ECA:
•
EEreignis: Änderung
i i Ä d
eines Zustands oder Nachricht
i
Z
d d N h i h von außen
ß
– Krankmeldung
– Termin überschritten
– Eingang eines Antrags
– ...
•
Bedingung: Prädikat
di
dik bzgl. eines Zustands
b l
d oder einer Zustandsfolge
d
df l
– Datum hat falschen Wert
– Antrag hat definierten Zustand
g
– ...
•
Aktion: Aufruf einer Funktion bzw. Nachricht nach außen
– Meldung an zuständige(n) Fachabteilung(smanager)
– Meldung des falschen Wertes
– Versenden des Antrags an zuständigen Sachbearbeiter
g
g
– ...
20. Prof. Jasper: Datenbanksysteme
12
Aktive Datenbanken
• Abstrakte Realisierungsarchitektur
Anwendungen
Abfrage
Antwort
Änderung
Ereignis
DB‐
Ereignis
Datenbankverwaltungssystem
DML
QL
Regelverwaltungssystem
Regel‐
Regel‐
spezifikation
ifik ti
verwaltung
lt
Ereignis‐
Bedingungs‐
überwachung prüfung
Erklärungs‐
k
komponente
t
Aktions‐
ausführung
Aktive Regeln
Datenbank
Regel
Tab A B C
Situation
Aktion
Ereignis
g
Bedingung
g g
20. Prof. Jasper: Datenbanksysteme
13
Aktive Datenbanken
• Anwendungsszenario: Aktives Informationssystem (AIS)
AIS
Auffälligkeiten
Abfragen / Änderungen
Betriebliche Daten
Antworten
Anwender
Regeln
Zeit
DB
Geo‐ & Umweltdaten
20. Prof. Jasper: Datenbanksysteme
14
Aktive Datenbanken
• Ereignisse in aktiven Informationssystemen
– Datenbank
• Update (Einfügen, Ändern, Löschen)
• Lesen
– Benutzungsschnittstelle
• Menüauswahl
• Objektselektion
• Fenster‐/ Applikationswechsel
EVENT Mitarbeiter_meldet_krank =
INSERT_DB (...)
END EVENT
– Applikation
• spezifisch
– Umgebung
• Mail, Internet
– Kombinationen
• Algebra: AND, OR, NOT, COUNT
20. Prof. Jasper: Datenbanksysteme
15
Aktive Datenbanken
• Bedingungen und Aktionen in aktiven Informationssystemen
– Bedingungen:Prädikate über
• Datenbankzustand
• Ereignisparameter
• Anwendungszustand
“IF Projekt.Mitarbeiter = Projekt.Manager“
– Aktionen: Programmfragmente
Akti
P
f
t
• Sprachabhängig
Imperative Kontrollstrukturen
• Imperative Kontrollstrukturen
• Berechnungsvollständig ACTION
BEGIN
Mail (“Bitte Vertretung für Mitarbeiter X übernehmen”)
END ACTION.
20. Prof. Jasper: Datenbanksysteme
16
Aktive Datenbanken
• Regeln in aktiven Informationssystemen
RULE Lange_Krankheit
ON Lange
O
a ge_Krank(P)
a ( )
DO Projekt.Anpassen(P)
END RULE.
EVENT Lange
Lange_Krank(P)
Krank(P) =
Mitarbeiter.Erkrankung(P)
AND NOT Mitarbeiter.Gesund(P)
BETWEEN
(Mitarbeiter.Erkrankung(P).Timestamp,
Mitarbeiter.Erkrankung(P).Timestamp+ 5 DAYS)
END EVENT
ACTION Projekt.Anpassen(P)
Projekt Anpassen(P)
BEGIN
...
END ACTION.
20. Prof. Jasper: Datenbanksysteme
17
Aktive Datenbanken
• Anwendungsbeispiel Geschäftsregel (s.o.)
Mitarbeiter
P
Personalabteilung
l bt il
Fachabteilung
aDB
20. Prof. Jasper: Datenbanksysteme
18
Aktive Datenbanken
• Anwendungsbeispiele AIS
Ereignisse
EIS
Active_EIS (Studie)
48 ET; 180 Attr.
Krebs-Epidemiologie
Active_INEKS (Prototyp)
Active_WfM (Prototyp)
Fremdsysteme
• Budget überschritten • Fachbereich warnen
• Exmatrikulation
E
t ik l ti
• St
Statistik
ti tik berechnen
b
h
• SAP R/3
• HIS
• Neuer Krebsfall
• Signifikanter Wert
• Statistik berechnen
• Epidemiologen
informieren
• Statistik
• GIS
• Objekt bearbeiten
• Bearbeiter
B b it erkrankt
k kt
• Objekt umleiten
• Ablauf
Abl f äändern
d
• Scanner
• Mail
M il Tool
T l
• Meilenstein
• Fehlerzahl zu hoch
• Qualität sichern
• Manager warnen
• SE-Werkzeuge
• Mail Tool
87 Regeln; 18 ET
Workflow Management
Aktionen
WfM-DB; generiert aus FDL
bzw. ARIS
PCSE
Active_CASE (Prototyp)
240 Regeln; 90 ET; 480 Attr.
20. Prof. Jasper: Datenbanksysteme
19
Aktive Datenbanken
• Erfahrungen mit aktiven Datenbanken und Informationssystemen
•
Modell
• Ereignisorientierte Regelsprache
• Konzept zur Integration externer Komponenten
K
t
I t
ti
t
K
t
•
Implementierung
• Basis: relationale & objektorientierte DBMS
Basis relationale & objektorientierte DBMS
• Offene Systeme notwendig
• Standards wie CORBA hilfreich
•
Anwendungen
• Ereignisorientierung bewährt
g
g
• Zeitinformationen differenziert
• Systemintegration möglich
• Offene Systeme selten
ff
l
• Standards (noch) nicht berücksichtigt
Verhalten großer Regelmengen unbekannt
großer Regelmengen unbekannt
• “Verhalten”
20. Prof. Jasper: Datenbanksysteme
20
Herunterladen