ppt

Werbung
Events in aktiven
objektorientierten/
objektrelationalen
Datenbanken
Lehrstuhl für Datenbanken und
Informationssysteme
Seminar „Aktive Datenbanken“ SS2007
Vortrag von Katharina Keitsch
Übersicht
1.
Objektorientierung in Datenbanken
1.1 Objektorientierte DB
1.2 Objektrelationale DB
1.3 Aktive Datenbanken
2.
AMOS – ein objektrelationales aktives DBMS
2.1
2.2
2.3
2.4
2.5
2.6
2.7
3.
4.
AMOS – Datenmodell
AMOS – Regelsprache
Beispiel
Eventspezifikationssprache
Event-Überwachung
Regelausführungsalgorithmus
Ausblick
Zusammenfassung
Literatur
1. Objektorientierung in Datenbanken
• Verwaltung immer komplexerer Daten in
Datenbanken
-> bringen RDB-Modelle an ihre Grenzen
• Entwicklung objektorientierter
Datenbankssysteme aus zwei Richtungen:
– (semantische) Datenbanksysteme
– Objektorientierte Programmiersprachen
1.1 Objektorientierte DB
• Zentrales Element der OODB: Objekt
• Objekte werden als Instanzen einer Klasse
erzeugt
• In einer Klasse werden Attribute und
Methoden der Objekte festgelegt
• Um die Wiederverwendbarkeit von Code zu
unterstützen, sind Klassen in
Klassenhierarchien organisiert
• zusätzlich semantischer Kontext, da nicht nur
Attribute, sondern auch Beziehungen Teil
eines Objekts sind
1.2 Objektrelationale DB
•
Vorteile von relationalen und
objektorientierten Datenbanken vereinigt
– Daten im herkömmlichen relationalen Modell
gespeichert
– in den in der DB gespeicherten Prozeduren und
Funktionen werden objektorientierte Techniken
zugelassen
•
Beispiel: PostgreSQL Version 8.0
1.2 Objektrelationale DB
•
Wesentliche objektrelationale Konzepte:
–
–
–
–
–
–
–
Typkonstruktoren
Benutzerdefinierte Datentypen
Typhierarchien
Methoden
Objektidentifikatoren und Referenzen
Benutzerdefinierte Ordnungen
Erweiterte Tupeltabellen, Typisierte Tabellen
(bzw. Objekttabellen)
– Tabellenhierarchien
– Typisierte Sichten bzw. Objektsichten
– Sichtenhierarchien
1.3 Aktive Datenbanksysteme
• ECA-Regeln
• Andere Variationen von active rules:
– EA-rule
– CA-rule
• Events sind die wichtigsten Elemente in
einem ADBMS
• Stärke eines ADBS bestimmt sich aus:
– Auf wieviele unterschiedliche Ereignisse kann
reagiert werden
– Effizienz der Bedingungsauswertung
– Art von Aktionen
2. AMOS – ein objektrelationales aktives
DBMS
•
AMOS: Active Mediators Object System
-> Vermittelnde Schicht zwischen Datenquellen und
Anwendungen
•
Ausgangspunkt: OODBMS-Prototyp WS-IRIS
–
–
•
Vier Arten von Mediatoren:
–
–
–
–
•
Fahl, Risch, Sköld: nur CA-Regeln
S.A. Machani: ECA-Regeln und Event Specification
Language
Integrators
Monitors Models
Domain Models
Locators
OR-Abfragesprache: AMOSQL
2. AMOS – ein objektrelationales aktives
DBMS
Application
Application
Domain model
Application
Domain model
AMOS
Integrator
Data
Source
Data
Source
Monitor
Data
Source
Integrator
Data
Source
Data
Source
2.1 AMOS - Datenmodell
• Iris-Datenmodell: 3 grundlegende
Konstrukte – Objekte, Typen und
Funktionen
• AMOS: Einführung von Regeln
• Funktionen in AMOS: gespeichert,
abgeleitet oder fremd
2.2 AMOS - Regelsprache
• Syntax der Regeldefinition:
create rule rule_name parameter_specification As
[For_each_clause]
[On event_specification]
[When predicate_expression]
Do procedure_expression
• ECA-Regel
• andere: EA-Regeln, CA-Regeln
2.2 AMOS - Regelsprache
• Löschen von Regeln
delete rule rule_name
• Aktivierung/ Deaktivierung von Regeln
activate rule rule_name parameter-list
[priority 0|1|2|3|4|5]
deactivate rule rule_name parameter-list
2.3 Beispiel
• Beispiel
Adresse (Strasse, PLZ, Ort)
Abteilung (Name, Adresse, Abteilungsleiter)
Angestellter (Name, Adresse, Abteilung, Einkommen,
Steuern, Bruttoeinkommen, Nettoeinkommen)
Abteilungsleiter (Name, Adresse, Abteilung,
Einkommen, Steuern, Bonus, Bruttoeinkommen,
Nettoeinkommen)
2.3 Beispiel
create type AdresseTyp properties
(strasse charstring, plz charstring, ort charstring);
create type AbteilungTyp properties
(name charstring, adresse AdresseTyp);
create type AngestellterTyp properties
(einkommen number, steuern number);
create type AbteilungsleiterTyp
subtype of AngestellterTyp;
2.3 Beispiel
create function name (AngestellterTyp) ->
bag of charstring as stored;
create function adresse (AngestellterTyp) ->
bag of AdresseTyp as stored;
create function abteilung (AngestellterTyp) ->
bag of AbteilungTyp as stored;
create function bonus (ManagerTyp) ->
integer as stored;
create function abteilungsleiter (AbteilungTyp) ->
AbteilungsleiterTyp as stored;
2.3 Beispiel
create function brutto (AngestellterTyp a) -> number as
select einkommen(a);
create function brutto (AbteilungsleiterTyp m) -> number as
select einkommen(m) + bonus(m);
create function netto (AngestellterTyp a) -> number as
select AngestellterTyp.brutto->number(a) * steuern(a);
create function netto (AbteilungsleiterTyp m) -> number as
select brutto(m) * steuern(m);
create function abteilungsleiter (AngestellterTyp a) ->
AbteilungsleiterTyp as
select abteilungsleiter(abteilung(a));
2.4 Eventspezifikationssprache
• In AMOS werden nur Datenänderungsevents
unterstützt:
– Erstellen/ Löschen von Objekten
– Einfügen/Löschen eines Wertes in eine
Funktion mit Multimenge
– Aktualisierungen von Funktionen
– Ausführung von Regelaktionen
2.4 Eventspezifikationssprache
• Einfache Events
–
–
–
–
–
updated
added
removed
created
Deleted
• Beispiele
updated(einkommen(a))
added(adresse(a))
created(e)
2.4 Eventspezifikationssprache
• Zusammengesetzte Events
– Kombination von einfachen oder
zusammengesetzten Events durch logische
Operatoren
– Disjunktion E1 OR E2
– Konjunktion E1 AND E2
• Beispiel:
updated(einkommen(a)) OR updated(steuern(a))
2.4 Eventspezifikationssprache
• Condition Specification
– AMOSQL – Abfrage
– Kann boolsche Ausdrücke beinhalten
– Condition erfüllt, wenn die Abfrage nicht leer ist
• Action Specification
– AMOSQL-Anweisungen
– Mengenorientierte Ausführung wird unterstützt
2.5 Event-Überwachung
• Delta-Relationen (Δ-sets)
– Delta-set einer gespeicherten oder abgeleiteten
Funktion R:
ΔR= <R_added,R_removed,R_updated>
– Änderungen einer gespeicherten Funktion R
werden sofort während der Transaktion in
R_added, R_removed oder R_updated
gespeichert
– Netto-Effekt wird sofort berücksichtigt!
2.5 Event-Überwachung
• Beispiel:
create AbteilungTyp(name) instances :spiel(„Spielwaren“);
create AbteilungTyp(name) instances :schuhe(„Schuhabteilung“);
create AbteilungTyp(name) instances :kleidung(„Bekleidung “);
create AngestellterTyp(name,abteilung) instances
:a1(„Angestellter1“,:spiel);
set abteilung(:spiel) = :schuhe;
-> Inhalt von abteilung_updated ist <t1, :a1, :schuhe, :spiel>
2.5 Event-Überwachung
• Abgeleitete Funktionen
– Nicht aktualisierbar
– Veränderungen abgeleiteter Funktionen werden
durch Berücksichtigung von Änderungen der
zugrunde liegenden gespeicherten Funktionen
berechnet
– Materialisierung abgeleiteter Funktionen
– Abhängigkeitsnetzwerk von Delta-Relationen
2.5 Event-Überwachung
ΔAngestTyp.netto->number
ΔAngestTyp.brutto->number
ΔAngestTyp.einkommen->number
ΔAngestTyp.bonus->number
ΔAngestTyp.steuern->number
2.5 Event-Überwachung
• Event Funktionen
– für jedes spezifizierte Event einer Regel wird
Event-Funktion generiert
– Ausdruck von Delta-Relationen
– Stehen an der Spitze der Abhängigkeitsnetzwerke
– Änderungen werden durch das
Abhängigkeitsnetzwerk nach oben durchgereicht
und die Event-Funktion daraus abgeleitet
• Condition-/Action-Funktionen
2.5 Event-Überwachung
ΔEvent-function
ΔAngestTyp.netto->number
ΔAngestTyp.brutto->number
ΔAngestTyp.einkommen->number
ΔAngestTyp.bonus->number
ΔAngestTyp.steuern->number
2.6 Ausführung von Regeln
1. Events entdecken
2. Betreffende Regeln markieren
3. Regel mit der höchsten Priorität auswählen
4. Condition der Regel auswerten
5. Reagieren
6. Wiederholung Schritte 1-5 bis keine
weiteren Regeln mehr in der Warteschlange
sind und keine weiteren Events ausgelöst
wurden
2.7 Ausblick
• Zeitevents
• Aktualisierbarkeit fremder Funktionen
• Erweiterung der Eventalgebra um Negation
und andere Operatoren
3. Zusammenfassung
• RDBMS und OODBMS basieren auf
unterschiedlichen Konzepten
• Objektrelationale Datenbanken -> Vorteile
beider Ansätze
• Aktive DB -> Integration von ECA-Regeln
• AMOS:
– Unterstützte Events: Änderungen von Daten
– Eventdetektion: Funktionsüberwachung und
Speicherung der Änderungen in Delta-Relationen
4. Literatur
• [FRS93]: Fahl, G.; Risch, T.; Sköld, M.: AMOS – An
Architecture for Active Mediators, NGITS’93, Haifa, Israel,
June 1993
• [Gei05]: Geisler, F.: Datenbanken – Grundlagen und
Design. mitp-Verlag/Bonn, 2005
• [Heu97]: Heuer, A.: Objektorientierte Datenbanken –
Konzepte, Modelle, Standards und Systeme. 2.,aktualisierte
und erweiterte Auflage, Addison-Wesley Verlag, 1997
• [Mac96]: Machani, S.-E.: Events in an Active ObjectRelational Database System. 1996
• [SM96]: Stonebraker, M.; Moore, D.: Object-Relational
DBMSs – The Next Great Wave. Morgan Kaufmann
Publishers, San Francisco, CA 1996.
• [TS06]: Türker, C.; Saake,G.: Objektrelationale
Datenbanken – Ein Lehrbuch. dpunkt.verlag, 2006
Vielen Dank für die Aufmerksamkeit!
Fragen?
Herunterladen