1 / 14

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

Trigger-abhängige Client Interaktionen (bezüglich Oracle8 i). oder : Was ein Trigger so alles „anstoßen“ kann. „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner. Inhalt. Der Trigger Strored Procedures & Stored Functions

Télécharger la présentation

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

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. 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 : StoredProcedures & 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 StoredProcedures & 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 E-Mail • 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 nunals praktisches BeispielMail-Benachrichtigungper Trigger „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

  14. Die Tabelle: 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 Email mit dem eingetragenen Text an den eingetragenen Empfänger „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

More Related