1 / 31

Events in aktiven objektorientierten/ objektrelationalen Datenbanken

Events in aktiven objektorientierten/ objektrelationalen Datenbanken. Lehrstuhl für Datenbanken und Informationssysteme Seminar „Aktive Datenbanken“ SS2007 Vortrag von Katharina Keitsch. Übersicht. Objektorientierung in Datenbanken 1.1 Objektorientierte DB 1.2 Objektrelationale DB

ghita
Download Presentation

Events in aktiven objektorientierten/ objektrelationalen Datenbanken

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Events in aktiven objektorientierten/objektrelationalen Datenbanken Lehrstuhl für Datenbanken und Informationssysteme Seminar „Aktive Datenbanken“ SS2007 Vortrag von Katharina Keitsch

  2. Übersicht • Objektorientierung in Datenbanken 1.1 Objektorientierte DB 1.2 Objektrelationale DB 1.3 Aktive Datenbanken • AMOS – ein objektrelationales aktives DBMS 2.1 AMOS – Datenmodell 2.2 AMOS – Regelsprache 2.3 Beispiel 2.4 Eventspezifikationssprache 2.5 Event-Überwachung 2.6 Regelausführungsalgorithmus 2.7 Ausblick • Zusammenfassung • Literatur

  3. 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

  4. 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

  5. 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

  6. 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

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

  8. 2. AMOS – ein objektrelationales aktives DBMS • AMOS: Active Mediators Object System -> Vermittelnde Schicht zwischen Datenquellen und Anwendungen • Ausgangspunkt: OODBMS-Prototyp WS-IRIS • Fahl, Risch, Sköld: nur CA-Regeln • S.A. Machani: ECA-Regeln und Event Specification Language • Vier Arten von Mediatoren: • Integrators • Monitors Models • Domain Models • Locators • OR-Abfragesprache: AMOSQL

  9. 2. AMOS – ein objektrelationales aktives DBMS Application Application Application Domain model Domain model AMOS Integrator Integrator Monitor Data Source Data Source Data Source Data Source Data Source

  10. 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

  11. 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

  12. 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

  13. 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)

  14. 2.3 Beispiel create type AdresseTypproperties (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;

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

  16. 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));

  17. 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

  18. 2.4 Eventspezifikationssprache • Einfache Events • updated • added • removed • created • Deleted • Beispiele updated(einkommen(a)) added(adresse(a)) created(e)

  19. 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))

  20. 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

  21. 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!

  22. 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>

  23. 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

  24. 2.5 Event-Überwachung ΔAngestTyp.netto->number ΔAngestTyp.brutto->number ΔAngestTyp.einkommen->number ΔAngestTyp.bonus->number ΔAngestTyp.steuern->number

  25. 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

  26. 2.5 Event-Überwachung ΔEvent-function ΔAngestTyp.netto->number ΔAngestTyp.brutto->number ΔAngestTyp.einkommen->number ΔAngestTyp.bonus->number ΔAngestTyp.steuern->number

  27. 2.6 Ausführung von Regeln • Events entdecken • Betreffende Regeln markieren • Regel mit der höchsten Priorität auswählen • Condition der Regel auswerten • Reagieren • Wiederholung Schritte 1-5 bis keine weiteren Regeln mehr in der Warteschlange sind und keine weiteren Events ausgelöst wurden

  28. 2.7 Ausblick • Zeitevents • Aktualisierbarkeit fremder Funktionen • Erweiterung der Eventalgebra um Negation und andere Operatoren

  29. 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

  30. 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 Object-Relational 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

  31. Vielen Dank für die Aufmerksamkeit! Fragen?

More Related