Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)

Ähnliche Präsentationen


Präsentation zum Thema: "Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)"—  Präsentation transkript:

1 Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)
oder : Was ein Trigger so alles „anstoßen“ kann... „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

2 Inhalt Der Trigger Strored Procedures & Stored Functions
Vorteile von Stored Procedures & Functions Anwendungsmöglichkeiten Wie geht das denn genau?? „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

3 Der Trigger (der Auslöser)
wird von der Datenbank ausgelöst, wenn mit einer DML (database modifying language) Daten in der Datenbank verändert werden kann mit dem CALL-Befehl eine „Stored Procedure“ oder eine „Stored Function“ auslösen ist die Taste mit nahezu unbegrenzten Möglichkeiten „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

4 Beispiel : Trigger CREATE TRIGGER Triggername
AFTER UPDATE OF Spalte ON Tabellenname FOR EACH ROW BEGIN Anweisung1; ... END; „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

5 Stored Procedures & Stored Functions
sind lokal in der Datenbank gespeichert Stored Procedures (für void Methoden) Stored Functions (für Methoden mit Rückgabewert) Aufrufen von Stored Procedures & Functions SQL DML-Befehlen ( INSERT, UPDATE, DELETE und SELECT) SQL CALL-Befehl „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

6 Beispiel : Stored Procedures & Functions
PROCEDURE Prozedurname IS Variable1 Datentyp; ... BEGIN Anwendung1; EXCEPTION when ... END Prozedurname; „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

7 Vorteile von Stored Procedures & Functions
hohe Geschwindigkeit bereits kompilierter Code serverseitig ausgeführt einfache Einbindung von Methoden (Java, C) systemunabhängig und vielnutzerfähig „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

8 Anwendungsmöglichkeiten
Als Reaktion auf Datenbank-Veränderungen kann über Trigger alles, was auch mit Stored Procedures & Functions möglich ist, ausgeführt werden. Mail-Benachrichtigungen Ausführung von Prozeßketten ( -folgen) Automatisierung von Verwaltungsprozessen ...noch Ideen? „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

9 Trigger in PL/SQL Nutzen der mitgelieferten packages:
utl_http - Verbindung mit HTTP-Server per HTTP-Protokoll utl_tcp - Kommunikation per TCP/IP Protokoll utl_smtp - Senden von Beispiel utl_smtp: Sehr unkomfortabel, da Kommunikation auf niederer Ebene des SMTP-Protokolls Abstützen auf integrierte JServer API „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

10 Trigger in PL/SQL(2) Beispiel-Prozedur:
CREATE OR REPLACE PROCEDURE sendMail ( Parameter ) IS mail_conn utl_smtp.connection; BEGIN mail_conn := utl_smtp.open_connection( mailhost ); utl_smtp.helo(mail_conn, mailhost); utl_smtp.mail(mail_conn, sender); utl_smtp.rcpt(mail_conn, recipient); utl_smtp.data(mail_conn, message); - Nachricht gemäß RFC821 utl_smtp.close_data(mail_conn); utl_smtp.quit(mail_conn); END; „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

11 Trigger in Java verschiedene Möglichkeiten:
Hochladen der gesamten Applikation in den Oracle-Server + Vermeidung der Netzzugriffe auf die DB + leichtes Kopieren in andere DB + Änderungen auf Server leicht zu handhaben - eventuelles Laden von ganzen Bibliotheken in die DB - Oracle8i unterstützt Java1.2 Praxis: hochladen der JavaMail, JB Activation Framework und Teilen der 1.3 JDK sprengen genutzen DB-Account Anstoßen eines Prozesses auf einem anderen Server (zB per Socket) + Applikation kann komplett auf Server laufen und dessen Fkt. nutzen - Performanceverlust des auslösenden Ereignisses durch Kommunikation über Netzwerk Praxis: DB-Account darf keine Socket-Verbindung herstellen(Admin??) „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

12 Trigger in C Funktionen liegen auf Datenbank-Server, aber nicht im
Adressraum der DB + Nutzung der Funktionalität und Geschwindigkeit von C + Nutzen anderer Sprachen (Assembler, C++ etc) - Zeitverlust durch Ausführen ausserhalb der DB - Zeitverlust durch eventuelles Laden Funktionen (sind in DLL‘s verpackt) „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

13 Und nun als praktisches Beispiel Mail-Benachrichtigung per Trigger
„Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

14 Die Tabelle: Der Trigger: Das Resultat:
CREATE OR REPLACE TABLE trigger_test ( rec VARCHAR2(100) NOT NULL, text VARCHAR2(100) NOT NULL ); Der Trigger: CREATE OR REPLACE TRIGGER test_trig1 AFTER INSERT ON trigger_test FOR EACH ROW CALL send_Mail(:new.rec, :new.text) Das Resultat: Eine mit dem eingetragenen Text an den eingetragenen Empfänger „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner


Herunterladen ppt "Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)"

Ähnliche Präsentationen


Google-Anzeigen