ECMA-Regeln

ECMA-Regeln sind aktive Regeln und formulieren einen Zusammenhang zwischen interessierender Situation (E Ereignis) und gewünschter Reaktion (A Aktion). Somit bilden sie relevante Abläufe, sprich dynamisches Verhalten, der realen Welt in den Datenbanksystemen mit ihren sonst nur passiven Daten ab. Grundsätzlich kann jedes Datenbank-Konzept, sei es nun relational, objektrelational, objektorientiert, ..., um aktiven Regeln erweitert werden.

Obwohl die Begriffe TRIGGER, aktive Regeln, Datenbanktrigger grundsätzlich synonym verwendet werden, wird hier der Begriff der ECMA-Regeln dazuverwendet, die theoretischen Hintergründe genauer zu beleuchten.

Das Akronym bezeichnet die vier zentralen Eigenschaften einer aktiven Regel. Ihre syntaktischen Ausprägungen im SQL-Standard sowie bei Oracle finden sich bei den TRIGGERN.

[E]:Event:

Für jeden Trigger muss das Ereignis spezifiziert werden, zu dem der Trigger von der Triggerkomponente gefeuert (aktiviert) wird. Ereignisse können z. B. sein:

  • die Ausführung von Einfüge-/Änderungs-/Löschanweisungen (SQL:INSERT, UPDATE, DELETE),
  • Zeitereignisse (täglich 14:15 h oder Tagesdatum 01.01.2002),
  • der Aufruf von Prozeduren und Funktionen oder
  • das Auftreten von Fehlern (Integritätsfehler, Administrationsfehler wie Tablespace voll).

[C]:Condition

Die Formulierung einer Bedingung, die vor der Aktivierung oder Ausführung des Triggers geprüft wird, ist optional. Wird eine Bedingung definiert, so wird ein gefeuerter Trigger nur ausgeführt, wenn die Bedingung erfüllt ist. Mit einer solchen Bedingung kann der aktuell vorliegende DB-Zustand kontrolliert werden, z. B.

  • statische Bedingung: Summe aller Gehälter jeder Abteilung ist kleiner oder gleich dem Gehaltsbudget der Abteilung oder
  • der Zustandsübergang mit dynamischer Bedingung: eine Preiserhöhung darf nicht mehr als 10% betragen.

[M]:Mode

Die Definition eines Ausführungszeitpunkts für einen Trigger ist optional. Ein solcher Zeitpunkt kann definiert werden

  • absolut (täglich 16:30 h oder Tagesdatum 31.12.2002) oder
  • relativ zum Zeitpunkt der Aktivierung des Triggers oder
  • abhängig vom feuernden Ereignis: vor oder nach einer INSERT-/UPDATE—/DELETE-Anweisung).

[A]:Action

Für jeden Trigger müssen die Aktionen programmiert werden, die (zum Zeitpunkt M) ausgeführt werden sollen.

  • Zulässige Aktionen können bestimmte Befehle der DB·Sprache sein (z.B. SQL-Befehle wie Anfragen und DML-Anweisungen) oder Programme einer zulässigen Programmiersprache.
  • Unter ORACLE können die Aktionen in PL/SQL oder JAVA programmiert werden.

siehe auch aktive Datenbanken, TRIGGER

Quellen:

  • Faeskorn-Woyke, Heide; Bertelsmeier, Birgit; Riemer, Petra; Bauer, Elena: "Datenbanksysteme - Theorie und Praxis mit SQL2003, Oracle und MySQL", Pearson Education, München, 2007, ISBN 978-3-8273-7266-6
  • Feuerstein, Steven, Pribyl. Bill: "Oracle PL/SQL Programming", O'Reilly, 2009, ISBN-13: 978-0596514464
  • Oracle® Database SQL Language Reference 11g Release 1 (11.1) in http://docs.oracle.com/cd/B28359_01/server.111/b28286/toc.htm
  • Oracle® Database PL/SQL Language Reference 11g Release 2 (11.2) in http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/toc.htm
  • Saurabh, Gupta: "Oracle Advanced PL/SQL Developer Professional Guide", Packt Publishing Limited, 2012, ISBN 978-1-84968-722-5

Kategorie: Oracle-PL-SQL, Aktive Datenbanken, E