Databases Reference
In-Depth Information
VNR NAME STATUS GEHALT
---------- ------ ------- ----------
1002 Ute Senior 1995
1003 Uwe Senior 2100
1004 Ulf Junior
1005 Urs Junior 1365
KNR NAME BETREUER
---------- ------- ----------
4 Edwina 1002
Man sieht, dass alle Kunden mit dem Betreuer 1001 gelöscht
wurden. Diese Form der Fremdschlüsseldefinition führt alle
Löscharbeiten automatisch aus. Dabei gilt weiterhin, dass die
gesamte Aktion nicht durchgeführt wird, falls es an nur einer
Stelle Widerstand gegen das Löschen geben sollte, da ein
Constraint verletzt wird.
Beim aufmerksamen Lesen des letzten Beispiels fällt kritisch
auf, dass es häufig nicht gewünscht wird, dass Kundeninforma-
tionen verloren gehen. Man muss sich bei der Implementierung
der Tabellenstrukturen möglichst für eine einheitliche Art der
Fremdschlüsseldefinition mit oder ohne ON DELETE CASCADE
entscheiden. Wenn man weiß, dass später auch unerfahrene
Personen Zugang zu kritischen Daten haben müssen, sollte
man genau überlegen, ob das eigentlich sehr praktische ON
DELETE CASCADE wirklich die bessere Lösung ist, da der vor-
her beschriebene Dominoeffekt, dem man ohne diese Ergän-
zung von Hand abarbeiten muss, mit ON DELETE CASCADE
schnell zu gravierenden und meist nur schwer wieder behebba-
ren Datenverlusten führen kann.
Im SQL-Standard gibt es folgende Möglichkeiten, die Reaktion
beim DELETE in den FOREIGN KEY s nach ON DELETE zu spe-
zifizieren:
Dominoeffekt bei
Löschfortpflan-
zung
Pro und Contra
der Löschfort-
pflanzung
NO ACTION : entspricht der Ursprungseinstellung, das Löschen
wird abgelehnt, wenn ein abhängiger Datensatz existiert
Reaktionsmög-
lichkeiten beim
Löschen von Da-
ten
CASCADE : entspricht der vorgestellten Löschfortpflanzung
SET NULL : für abhängige Datensätze wird die Referenz auf
den gelöschten Datensatz automatisch auf NULL gesetzt
SET DEFAULT : wenn es einen Default-Wert gibt, wird dieser
im abhängigen Datensatz eingetragen; existiert ein solcher
Wert nicht, wird der Löschvorgang nicht durchgeführt
124
Search WWH ::




Custom Search