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

Slides:



Advertisements
Ähnliche Präsentationen
Datenbankzugriff über ISAPI-Webservererweiterungen
Advertisements

Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
Vorlesung Datenbank-programmierung
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
Relationale Datenbank MySQL
2. DB-API: Programmierschnittstellen zu Datenbanken
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
SQL Server 2005 Übersicht für Entwickler Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
MySQL.
Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
Allgemeine Technologien II
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
FH-Hof DBS II: Übersicht über die Vorlesung Richard Göbel.
Colibi Bibliothekssystem der Computerlinguistik. Einführung Motivation Was braucht Colibi? Software Datenbankdesign.
SQL als Abfragesprache
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Open Database Connectivity (ODBC). © Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Übung Datenbanksysteme WS 2003/ Übung Datenbanksysteme Hierarchische DBMS
JAVA RMI.
1 WS 2012 Software-Engineering II Aspektorientierung.
Seminarvotrag: PHP Von Stefan Niemczyk.
JDBC EDV JDBC.
Kapitel 9: Integritätssicherung
Datenbanken 10: Einfügen, Ändern, Löschen
Einführung MySQL mit PHP
Client / Server Architektur
Marcus Haller & René Schulze
ODBC (Open Database Connectivity)
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
© ISY Informationssysteme GmbHSeite: 1 ISY-Connect Connect Client (Konfiguration) Das obige Bild zeigt das Fenster von ISY Connect-Client im Konfigurationsmodus.
Wir bauen uns eine Webapplikation!
Relationale Datenbanken III
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Programm-Module Lehrbuch, Kapitel 7.
SQL Server 2005 CLR-Integration
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 SQL (Teil 5)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #9 SQL (Teil 4)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
HORIZONT 1 XINFO ® Das IT - Informationssystem Eclipse Plugin HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Objectives Verstehen was unterDelegate verstanden wird
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
SQL Server nach MySQL Datenbank-Migration SQLWays – Software für Migration Präsentation Copyright (c) Ispirer Systems Ltd. Alle.
Datenbankanbindung mit
Structured Query Language
Webinterface für IPTABLES
11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.
Datenbanken im Web 1.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #8 SQL (Teil 5)
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
JDBC1 Motivation(I) JDBC keine Abkürzung, sondern geschützter Name (inoffiziell: für Java Database Connectivity) unterschiedliche DBS haben unterschiedliche.
PHPmyadmin Maya Kindler 6c.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
Exotisches SQL Author: Sven Weller.
© 2003, Rudolf Jansen Einsatz der XML-Features der Oracle 9i DB zur Systemintegration Rudolf Jansen Freiberuflicher Entwickler und Autor
1 © Thales IS GmbH 2002 Thales Information Systems GmbH Im Team für Ihren Erfolg DOAG - Regionaltreffen Hannover Donnerstag, Oracle 9i XML Datenbank.
Jürgen Vester Manager Sales Consulting Stuttgart Webreporting für SAP R/* mit Oracle Application Express (ehem. HTML DB)
© 2003, Rudolf Jansen Java in der Datenbank Rudolf Jansen Freiberuflicher Entwickler und Autor DOAG SIG Development,
Thomas Tretter, 10. Februar 2004Oracle Label Security1 Oracle Label Security (fine grained access control) 10. Februar 2004.
Das IT - Informationssystem
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
D-SQL SQLization – endlich Client/Server!
Abfragesprache SQL in ORACLE
Vorlesung #8 SQL (Teil 5).
Create Table, Rechte und Rollen
Installation und Beispiele
Datenbanken online sowie offline verfügbar machen
 Präsentation transkript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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