Viele Möglichkeiten
Neben dem Bedienen von Triggern und dem Hochziehen einer sicheren Zugriffsschicht, wie es der Artikel zeigt, eignen sich Stored Procedures auch hierzu:
- Sie prüfen über »
CHECK« -Constraints Einträge in Tabellen auf inhaltliche Richtigkeit. - Sie beschleunigen mit funktionalen Indexen Inhalte, die auf der Berechnung eines Feldinhalts beruhen.
Trigger sorgen ihrerseits dafür, dass die Datenbank selbsttätig (Routine-)Arbeiten auslöst. Dazu kann auch gehören, exakte Feldinhalte zu erzwingen. Entsteht zum Beispiel die Notwendigkeit, dass Artikelnummern aus Ziffern und Großbuchstaben zu bestehen haben, kann dies eine »CHECK«
-Condition garantieren und ein Before-Trigger bei »INSERT«
und »UPDATE«
praktisch umsetzen. Stored Procedures und Trigger, die Minenarbeiter moderner Datenbanken, sind sich für keinen harten Job zu Schade. (jk)
Eingebettetes bei Oracle DB & Co.
PostgreSQL besitzt bei Weitem nicht die einzige Engine, die Stored Procedures und Trigger offeriert. MySQL etwa sieht SQL:2003 http://4 fürs Speichern von Funktionen vor, Oracle neben SQL die Sprachen PL/SQL und Java.
Ein Oracle-Trigger kann durch Anweisungen wie Insert, Update, Delete, Create, Alter, Drop, eine Before-after-Angabe oder durch eine Datenbankoperation wie Login, Logout, Startup oder Shutdown angestoßen werden (Listing 5). Per Trigger prüfen Oracle-Programmierer beispielsweise die Integrität einer DML-Anweisung. Mit PostgreSQL hat Oracle gemein, »INSTEAD OF«
-Trigger verwendet zu können, um Daten über Views upzudaten.
Ebenso wie PostgreSQL versprechen sich MySQL und Oracle von Stored Procedures einen Performancegewinn für oft vorkommende Abläufe, da nur ein Bruchteil der Daten zwischen Client und Datenbankserver zirkuliert. Gleichzeitig geht dies mit einer Rechte-Reduzierung der Datenbankclients einher, die nun keinen direkten SQL-Code mehr absetzen (Listing 6). Aktuelle Oracle-Versionen berücksichtigen Trigger und Stored Procedures bei Datenbank-Ex- und -Importen automatisch. (Dominik Wieczorek)
Listing 5
Trigger für Oracle DB
01 create or replace 02 TRIGGER update_job_history 03 AFTER UPDATE OF job_id, department_id ON employees 04 FOR EACH ROW 05 BEGIN 06 add_job_history(:old.employee_id, :old.hire_date, sysdate, :old.job_id, :old.department_id); 07 END;
Listing 6
Stored Procedure für Oracle DB
01 create or replace 02 PROCEDURE add_job_history 03 ( p_emp_id job_history.employee_id%type 04 , p_start_date job_history.start_date%type 05 , p_end_date job_history.end_date%type 06 , p_job_id job_history.job_id%type 07 , p_department_id job_history.department_id%type 08 ) 09 IS 10 BEGIN 11 INSERT INTO job_history (employee_id, start_date, end_date, job_id, department_id) 12 VALUES(p_emp_id, p_start_date, p_end_date, p_job_id, p_department_id); 13 END add_job_history;
Infos
- Online-Dokumentation zu PostgreSQL 9.1: http://www.postgresql.org/docs/9.1/static/index.html
- PL/pgSQL: http://www.postgresql.org/docs/current/static/plpgsql.html
- PL/Perl: http://www.postgresql.org/docs/current/static/plperl.html
- SQL:2003 in MySQL: http://dev.mysql.com/doc/refman/5.6/en/create-procedure.html
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 4 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





