Databases Reference
In-Depth Information
Der Nutzer mit dem EXECUTE-Privileg für eine Datenbankprozedur kann die
Prozedur dann aufrufen, ohne dass er die Privilegien für die Datenbankobjekte
haben muss, die in der Prozedur manipuliert werden.
Bedeutung von Datenbankprozeduren
Es gibt mehrere Gründe, warum man Datenbankprozeduren anlegen sollte.
Unterstützung der Datenbankkonsistenz
Hier ist zum Beispiel daran zu denken, dass bestimmte Änderungsoperationen
an Tabellen für alle Anwender verboten sind und nur der Datenbankadminis-
trator formal das Recht hat, diese Änderungen zuzulassen. Er kann aber kom-
plexe, d.h. aus mehreren Elementaroperationen zusammengesetzte Operatio-
nen zur Verfügung stellen, über die der Anwender die Datenbanktabellen
manipulieren kann, ohne dass die Konsistenz dadurch gefährdet ist.
So ist es beispielsweise denkbar, in einem Unternehmen, in dem verschiedene
Geldkonten existieren, die absolute Änderung eines Kontostands zu verbieten.
Stattdessen werden Datenbankprozeduren zur Verfügung gestellt, die Umbu-
chungen, Einnahmen oder Ausgaben ermöglichen. Zur zusätzlichen Sicherheit
können die Prozeduren erzwingen, dass für jeden Aufruf Datum, Uhrzeit und
Benutzeridentifizierung in einer weiteren Tabelle gespeichert werden, für die
niemand (außer dem Datenbankadministrator) irgendwelche Änderungsrechte
besitzt.
Effizientere Ausführung komplexer Operationen
Operationen, die zur Ausführung größere Datenmengen durchsuchen müssen,
aber nur kleine Datenmengen als Ergebnis zurückliefern, laufen im Server effi-
zienter ab.
Erweiterung der Möglichkeiten des relationalen Datenmodells
Es ist möglich, Prozeduren zu definieren, die aufgrund von Beschränkungen
(keine Rekursion; keine Möglichkeiten, prozedurale Abläufe zu formulieren) in
der DML von SQL nicht formulierbar sind.
Aufbau von Datenbankprozeduren
In der Standardform haben Datenbankprozeduren skalare Werte als Argumente:
IN Eingabeargument
OUT Ausgabeargument
INOUT transientes Argument
Leider ist es in SQL/PSM nicht möglich, die Datentypen der Argumente durch
Domänen zu beschreiben; bietet doch gerade das Konzept von Datenbankproze-
duren und -funktionen die Möglichkeit, Domänen zu abstrakten Datentypen zu
erweitern und damit das Verhalten sehr viel einfacher und genauer zu überwa-
chen.
 
Search WWH ::




Custom Search