20.07.2013 Aufrufe

Thema - bei der LISt Gesellschaft für Verkehrswesen und ...

Thema - bei der LISt Gesellschaft für Verkehrswesen und ...

Thema - bei der LISt Gesellschaft für Verkehrswesen und ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

5. Teilweiser Aufbau einer prototypischen GDI<br />

Die Aufgabe des ersten Triggers ist es, alle Datenbankoperationen (Insert, Update,<br />

Delete) auf dem View zu ermöglichen. Dies erfolgt durch die Implementierung eines<br />

Instead – of Triggers <strong>für</strong> jede dieser Operationen. Durch den in Abbildung 10<br />

dargestellten Instead of Trigger können Einträge im View geän<strong>der</strong>t werden.<br />

CREATE OR REPLACE TRIGGER Datentabelle_View_INSTOFU<br />

INSTEAD OF UPDATE ON Datentabelle_View"<br />

BEGIN<br />

END;<br />

CREATE OR REPLACE TRIGGER Datentabelle_View_INSTOFD<br />

INSTEAD OF DELETE ON Datentabelle_View"<br />

BEGIN<br />

END;<br />

UPDATE Datentabelle<br />

SET<br />

"Spalte 1" = :new. "Spalte 1"<br />

"Spalte 2" = :new. "Spalte 2"<br />

…<br />

WHERE "ID" = :old."ID";<br />

Abbildung 10: Instead of Update Trigger des zentralen Views<br />

Der Primärschlüssel <strong>der</strong> Tabelle (in Abbildung 10 „ID“ genannt) dient hier<strong>bei</strong> als<br />

Referenz <strong>und</strong> kann nicht geän<strong>der</strong>t werden. Sollte eine Än<strong>der</strong>ung des Primärschlüssels<br />

notwendig sein, muss <strong>der</strong> entsprechende Datensatz gelöscht <strong>und</strong> neu angelegt werden.<br />

Um die Operation „delete“ (löschen) auf dem View zu ermöglichen, muss ein weiterer<br />

Trigger erstellt werden. Dieser soll neben <strong>der</strong> Löschung des Eintrages aus <strong>der</strong><br />

Datentabelle ebenfalls die entsprechenden Einträge aus <strong>der</strong> Tabelle Nutzer_Daten <strong>für</strong><br />

diesen Datensatz löschen. Ein möglicher Trigger ist in Abbildung 11 dargestellt.<br />

DELETE FROM Datentabelle WHERE "ID" = :old."ID";<br />

DELETE FROM Nutzer_Daten WHERE "Daten_ID" = :old."ID";<br />

Abbildung 11: Instead of Delete Trigger des zentralen Views<br />

37

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!