Datenbanktrigger

Der Begriff des Datenbanktriggers ist synonym zu sehen zu TRIGGERN, ECMA-Regeln und aktiven Regeln.

Datenbank–Trigger werden programmiert, um reaktives Verhalten eines DBMS auslösen zu können. Tritt eine bestimmte Situation ein, so werden von der Triggerkomponente des DBMS die zu dieser Situation 'passenden' TRIGGER aktiviert (gefeuert) und zu einem definierten Zeitpunkt ausgeführt. Mit Hilfe der Trigger werden aktive Regeln formuliert, die bestimmte Aktionen beschreiben, die unter bestimmten Umständen ausgeführt werden sollen.

Datenbanktrigger sind programmtechnisch eine spezielle Form von Routinen, die nicht durch expliziten Aufruf, sondern durch das Eintreten von Ereignissen ausgelöst werden. Mit Hilfe der Trigger werden Regeln formuliert, die bestimmte Aktionen beschreiben, die auszuführen sind, wenn eine bestimmte Situation eintritt. Im Vergleicht zu klassischen DBS können damit nicht nur Informationsstrukturen der interessierenden Welt abgebildet werden, sondern auch ihr Verhalten. Grundsätzlich kann jedes beliebige klassische passive DBMS, unabhängig ob relational, objektrelational, objektorientiert, ... zu einem aktiven DBS erweitert werden.

In SQL werden Datenbanktrigger mit der CREATE TRIGGER-Anweisung angelegt.

Klassische Anwendungsfälle sind:

Folgeverarbeitung:
Hierunter fallen u.a. Anwendungsfälle wie die Historisieren und Archivierung von Daten bei Änderungen und Löschungen, die Pflege von Redundanzen zur Vermeidung von Änderungs-/Einfüge/Löschanomalien sowie die Pflege abhängiger Daten.

Konsistenzüberwachung/Integritätsprüfung:
In vielen Fällen ist die Ausdruckskraft der Integritätsbedingungen kommerzieller DBMS nicht ausreichend, insbesondere aufgrund der beschränkten Bedingungen der CHECK-CONSTRAINTS. Mittels Trigger können wesentlich komplexere Bedingungen geprüft werden. Die Restriktion der CHECK-CONSTRAINTS, dass keine SELECT-Anfragen möglich sind, gilt für Trigger nicht. Mittels der Transitionsvariablen sind sehr komfortabel dynamische, transitionale Integritätsbedingungen programmierbar. Und auch dynamische, temporale? Integritätsbedingungen lassen sich unter zu Hilfenahme von Tabellen und/oder Versionierungskonzepten formulieren und prüfen.
Der Prüfungzeitpunkt ist jedoch auf den IMMEDIATE-Zeitpunkt beschränkt.
Hingegen sind die Möglichkeiten auf Integritätsfehler individuell zu reagieren sehr viel vielfältiger. Das Zurückrollen ist bei einer Integritätsprüfung mittels Triggern nur eine mögliche Reaktion. Es können speziell auf jede einzelne Integritätsbedingung bezogene Fehlerkorrekturen programmiert werden, wie z.B. das Anpassen/Löschen anderer Daten, die inkonsistent mit den neuen Daten sind u.v.m.

Benachrichtigungssysteme:
In Fehlerfällen können Fehlermeldungen in Fehlermeldungsdateien mitprotokolliert und Benachrichtigungen auf dem Bildschirm angezeigt oder Nachrichten in Dateien bei Über-/Unterschreitung bestimmter Grenzwerte für bestimmte Attribute gespeichert werden.

Zugriffsschutz:
Es wird geprüft,ob ein Benutzer berechtigt ist, das den Trigger feuernde Ereignis (z.B Einfügen/Ändern/Löschen von bestimmten Daten) auszulösen (Zugriffskontrollen, Rechteverwaltung). Hier fungieren Trigger dann als Erweiterung der SQL-Rechteverwaltung.

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, D